本程序代码在原作者原有基础上进行改写,现测试可以在工作电脑上跑通。
撒花~~~
'''
代码功能:针对京客隆网站”财务资料“专栏,对该专栏下3页文件进行自动翻页下载。
'''
import requests
import os
from lxml import etree
#创建文件保存的路径
if not os.path.exists('d:/财务资料'):
os.mkdir('d:/财务资料')
网址 = 'https://www.jkl.com.cn/newsList.aspx?TypeId=10009'
UA伪装 = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'}
proxies={
'http':'http://XXXX:XXX@XXXX',
'https':'http:/XXXX:XXXXX@XXXXXX'
}
keys = []
values = []
#本程序为较为低阶的形式,此处的3为目视识别该专栏下的页数
for 页码 in range(1,3):
响应数据 = requests.get(url=网址, headers=UA伪装,proxies=proxies,verify=False).text
解析 = etree.HTML(响应数据)
#print(解析)
#拿到该网页下的各个文件下载链接与对应文件名称,遍历拿到的文件名称与文件链接,形成两个字符串列表
文件链接 = 解析.xpath('//div[@class="newsLis"]//li//@href')
文件名称 = 解析.xpath('//div[@class="newsLis"]//li/a/text()')
# print(文件名称)
for 名称 in 文件名称:
名称 = 名称.strip()
keys.append(名称)
# print(名称)
for 链接 in 文件链接:
链接 = 'http://www.jkl.com.cn' + 链接
values.append(链接)
# print(链接)
# print(keys)
# print(values)
#将文件名称与文件下载链接封装为字典,for循环遍历,利用字符串提取的方式,获取文件后缀名。创建文件保存路径,再次利用request库进行请求,获取二进制文件信息。之后写入文件。
字典 = dict(zip(keys,values))
# print(字典)
for 键,值 in 字典.items( ): # Python基础篇幅笔记P57
# print(值)
后缀 = 值.split('.')[-1]
# print(后缀)
文件数据 = requests.get(url=值,headers=UA伪装).content
文件路径 = 'd:/财务资料/' + 键 + '.' + 后缀
# print(文件路径)
with open(文件路径, 'wb') as 变量名:
变量名.write(文件数据)
print(键, '下载成功!!!')