安装 requests 库: 他们三个 按一个就行
pip install requests
或者
pip3 install requests
或者
conda install requests
代码
每次只可以下载一页的 简历模板 需要手动修改 id = ###
import requests
from lxml import etree
import os
if __name__ == "__main__":
# 创建一个文件夹,保存ppt
if not os.path.exists('./ppt模板'):
os.mkdir('./ppt模板')
# UA伪装
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) \
AppleWebKit/537.36 (KHTML, like Gecko) \
Chrome/96.0.4664.93 Safari/537.36'
}
url = 'https://aspx.sc.chinaz.com/query.aspx?keyword=%E5%85%8D%E8%B4%B9&issale=&classID=864&page=1'
# 发起请求
page_response = requests.get(url=url, headers=headers)
# 手动设置响应数据编码格式为utf-8
page_response.encoding = 'utf-8'
# 获取响应数据。text方法返回的是字符串形式的响应数据
page_text = page_response.text
# 数据解析
tree = etree.HTML(page_text)
div_list = tree.xpath('//div[@id="main"]/div/div')
for div in div_list:
ppt_title = div.xpath('./p/a/text()')[0] + '.rar'
# ppt_title = ppt_title.encode('iso-8859-1').decode('gbk')
ppt_src = 'https:' + div.xpath('./p/a/@href')[0]
print(ppt_src)
# 向PPT详情页发起请求
ppt_response = requests.get(url=ppt_src, headers=headers)
ppt_response.encoding = 'utf-8'
ppt_page_text = ppt_response.text
ppt_tree = etree.HTML(ppt_page_text)
# 解析下载地址
ppt_download_url = ppt_tree.xpath('//ul[@class="clearfix"]/li[1]/a/@href')[0]
print(ppt_download_url)
# 访问下载地址
ppt_data = requests.get(url=ppt_download_url, headers=headers).content
# 设置存储路径
ppt_path = './ppt模板/' + ppt_title
with open(ppt_path, 'wb') as fp:
fp.write(ppt_data)
print(ppt_title, "下载完成!")
# print("第%d页下载完毕!" % 1)
可以同时下载很多简历 page每次自增加一
import requests # 导入requests库,用于发送HTTP请求
from lxml import etree # 导入etree模块,用于解析HTML或XML文档
import os # 导入os模块,用于与操作系统交互,如创建文件夹
if __name__ == "__main__": # 判断是否为主程序运行
# 创建一个文件夹,保存ppt
if not os.path.exists('./jianli'): # 检查文件夹是否存在
os.mkdir('./jianli') # 如果不存在,则创建文件夹
# UA伪装,设置请求头中的User-Agent字段,模拟浏览器访问
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36'
}
# 定义起始页和结束页,用于分页请求
start_page = 1
end_page = 10 # 例如,你想要下载前10页的内容
for page in range(start_page, end_page + 1): # 循环遍历每一页
# 动态生成URL,根据页码构造请求地址
url = 'https://aspx.sc.chinaz.com/query.aspx?keyword=%E5%85%8D%E8%B4%B9&issale=&classID=864&page={page}'
# 发起请求,获取页面内容
page_response = requests.get(url=url, headers=headers)
# 手动设置响应数据编码格式为utf-8,确保正确解析中文
page_response.encoding = 'utf-8'
# 获取响应的文本内容
page_text = page_response.text
# 数据解析,使用etree解析HTML文档
tree = etree.HTML(page_text)
# 使用XPath表达式定位到包含PPT信息的div元素列表
div_list = tree.xpath('//div[@id="main"]/div/div')
for div in div_list: # 遍历每个div元素
# 提取PPT标题,并添加.rar后缀,假设下载的是压缩包
ppt_title = div.xpath('./p/a/text()')[0] + '.rar'
# 提取PPT详情页的链接
ppt_src = 'https:' + div.xpath('./p/a/@href')[0]
print(ppt_src) # 打印详情页链接
# 向PPT详情页发起请求
ppt_response = requests.get(url=ppt_src, headers=headers)
ppt_response.encoding = 'utf-8' # 设置响应编码
ppt_page_text = ppt_response.text # 获取详情页内容
ppt_tree = etree.HTML(ppt_page_text) # 解析详情页HTML
# 解析下载地址,假设下载链接在特定的XPath位置
ppt_download_url = ppt_tree.xpath('//ul[@class="clearfix"]/li[1]/a/@href')[0]
print(ppt_download_url) # 打印下载链接
# 访问下载地址,获取PPT文件内容
ppt_data = requests.get(url=ppt_download_url, headers=headers).content
# 设置存储路径
ppt_path = './jianli/' + ppt_title
with open(ppt_path, 'wb') as fp: # 以二进制写入模式打开文件
fp.write(ppt_data) # 将PPT文件内容写入文件
print(ppt_title, "下载完成!") # 打印下载完成信息
print("所有页面下载完毕!") # 打印所有页面下载完成信息