import requests
from lxml import html
etree = html.etree
import re
import os
if not os.path.exists('D:\爬虫/中秋节'):
os.mkdir('D:\爬虫/中秋节')
网址 = 'http://www.1ppt.com/moban/zhongqiujie/'
UA伪装 = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36 SLBrowser/7.0.0.9231 SLBChan/8'}
响应数据 = requests.get(url=网址,headers=UA伪装)
响应数据.encoding='gbk'
解析 = etree.HTML(响应数据.text)
末页 = 解析.xpath('//a[text()="末页"]/@href')
if 末页 !=[]:
正则 = re.search("(\d+).html",末页[0])
页数 = 正则.group(1)
else:
页数 = 1
for 页数 in range(1,int(页数)+1):
if 页数 == 1:
网址 = 'http://www.1ppt.com/moban/zhongqiujie/'
else:
网址 = 'http://www.1ppt.com/moban/zhongqiujie/'+'ppt_zhongqiujie_'+str(页数)+'.html'
响应数据 = requests.get(url=网址,headers=UA伪装)
响应数据.encoding = 'gbk'
解析 = etree.HTML(响应数据.text)
文件链接 = 解析.xpath('//ul[@class="tplist"]//@href')
文件链接 = ['http://www.1ppt.com/'+文件链接 for 文件链接 in 文件链接]
文件名称 = 解析.xpath('//ul[@class="tplist"]//@alt')
dict1 = dict(zip(文件名称, 文件链接))
for 文件名称, 文件链接 in dict1.items():
响应数据 = requests.get(url=文件链接, headers=UA伪装).text
解析 = etree.HTML(响应数据)
下载地址 = 解析.xpath('//ul[@class="downurllist"]/li/a/@href')
下载地址 = ['http://www.1ppt.com/' + 下载地址 for 下载地址 in 下载地址]
if 下载地址!=[]:
文件数据 = requests.get(url=下载地址[0], headers=UA伪装).content
文件路径 = 'D:\爬虫/中秋节/' + 文件名称 + '.zip'
with open(文件路径, 'wb') as 变量名:
变量名.write(文件数据)
print(文件名称, '下载成功了!!!')