欢迎大家交流学习,来自B站 路飞学城IT 的“2020年Python爬虫全套课程(学完可做项目)” P28作业分享。
# 导入使用的库
import requests,os
from lxml import etree
# 网站和UA伪装
url = 'https://sc.chinaz.com/jianli/free.html'
headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.67 Safari/537.36',
}
# 调用request 和 etree 爬取并解析
page_text = requests.get(url=url, headers=headers).content.decode('utf-8')
tree = etree.HTML(page_text)
ppt_list = tree.xpath('//div[@]//div/a')
# 创建一个文件夹
if not os.path.exists('./Cralwer_ppts'):
os.mkdir('./Cralwer_ppts')
# 爬取ppt的信息
for ppt in ppt_list: # ppt = ppt_list[0]
ppt_jpg_url = 'https:' + ppt.xpath('./img/@src')[0]
ppt_title = ppt.xpath('./img/@alt')[0]
ppt_url = 'https:'+ ppt.xpath('@href')[0]
# 爬取ppt 压缩包的连接
ppt_text = requests.get(url=ppt_url, headers=headers).content.decode('utf-8')
tree = etree.HTML(ppt_text)
ppt_rar = requests.get(tree.xpath('//div[@]/ul/li/a/@href')[0]).content
# 保存文件到文件夹
with open('./Cralwer_ppts/%s.zip'% ppt_title,'wb') as fp:
fp.write(ppt_rar)
print('下载完成——%s'% ppt_title)



