當前問題
網(wǎng)頁似乎改變,需要由總覽頁點進入各個子頁面,找到不同通道的下載鏈接之后在進行文件的下載。原有代碼似乎已不足以順利抓取數(shù)據(jù)。一路點擊之后也發(fā)現(xiàn),最終單個文件已變?yōu)?zip的壓縮包文件
當前關(guān)鍵問題:如何通過總覽頁面內(nèi)各個子頁面找尋到準確的文件下載鏈接。
import requests
from lxml import etree
import os
if not os.path.exists('d:/生日PPT'):
os.mkdir('d:/生日PPT')
網(wǎng)址 = 'http://www.1ppt.com/moban/shengri/'
UA偽裝 = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36'}
proxies={
'http':'http://XXXXX@XXXXX',
'https':'http://XXXX@XXXX'
}
響應(yīng)數(shù)據(jù) = requests.get(url=網(wǎng)址,headers=UA偽裝,proxies=proxies,verify=False)
#中文編碼字符選擇
響應(yīng)數(shù)據(jù).encoding='gbk'
解析 = etree.HTML(響應(yīng)數(shù)據(jù).text)
print(解析)
'''
#常規(guī)套路,尋找文件鏈接與保存文件時按顯示文件名稱保存
文件鏈接 = 解析.xpath('//ul[@class = "tplist"]/li/a/@href')
文件鏈接 = ['http://www.1ppt.com'+文件鏈接 for 文件鏈接 in 文件鏈接]
文件名稱 = 解析.xpath('//ul[@class = "tplist"]//@alt')
字典 = dict(zip(文件名稱,文件鏈接))
for 文件名稱,文件鏈接 in 字典.items():
響應(yīng)數(shù)據(jù) = requests.get(url=文件鏈接, headers=UA偽裝,proxies=proxies,verify=False).text
解析 = etree.HTML(響應(yīng)數(shù)據(jù))
下載地址 = 解析.xpath('//ul[@class="downurllist"]/li/a/@href')
print(下載地址[0])
文件數(shù)據(jù) = requests.get(url=下載地址[0], headers=UA偽裝,proxies=proxies,verify=False).content
后綴 = 下載地址[0].split('.')[-1]
文件路徑 = 'd:/生日PPT/' + 文件名稱 + '.' + 后綴
with open(文件路徑, 'wb') as 變量名:
變量名.write(文件數(shù)據(jù))
print(文件名稱, '下載成功?。?!')
'''