当前问题
网页似乎改变,需要由总览页点进入各个子页面,找到不同通道的下载链接之后在进行文件的下载。原有代码似乎已不足以顺利抓取数据。一路点击之后也发现,最终单个文件已变为.zip的压缩包文件
当前关键问题:如何通过总览页面内各个子页面找寻到准确的文件下载链接。
import requests
from lxml import etree
import os
if not os.path.exists('d:/生日PPT'):
os.mkdir('d:/生日PPT')
网址 = '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'
}
响应数据 = requests.get(url=网址,headers=UA伪装,proxies=proxies,verify=False)
#中文编码字符选择
响应数据.encoding='gbk'
解析 = etree.HTML(响应数据.text)
print(解析)
'''
#常规套路,寻找文件链接与保存文件时按显示文件名称保存
文件链接 = 解析.xpath('//ul[@class = "tplist"]/li/a/@href')
文件链接 = ['http://www.1ppt.com'+文件链接 for 文件链接 in 文件链接]
文件名称 = 解析.xpath('//ul[@class = "tplist"]//@alt')
字典 = dict(zip(文件名称,文件链接))
for 文件名称,文件链接 in 字典.items():
响应数据 = requests.get(url=文件链接, headers=UA伪装,proxies=proxies,verify=False).text
解析 = etree.HTML(响应数据)
下载地址 = 解析.xpath('//ul[@class="downurllist"]/li/a/@href')
print(下载地址[0])
文件数据 = requests.get(url=下载地址[0], headers=UA伪装,proxies=proxies,verify=False).content
后缀 = 下载地址[0].split('.')[-1]
文件路径 = 'd:/生日PPT/' + 文件名称 + '.' + 后缀
with open(文件路径, 'wb') as 变量名:
变量名.write(文件数据)
print(文件名称, '下载成功!!!')
'''
网友评论