0
点赞
收藏
分享

微信扫一扫

2023爬虫学习笔记 -- 某简历模板的爬取过程


一、目标地址

https://sc.cxxxx.com/jianli/free.html

二、分析要获取的数据

1、首先获取模板的名字和详情页



2023爬虫学习笔记 -- 某简历模板的爬取过程_学习笔记


2、详情页内获取下载地址



2023爬虫学习笔记 -- 某简历模板的爬取过程_网络爬虫_02


3、分析第一页第二页和第三页的网址

https://sc.xxxxz.com/jianli/free.html
https://sc.cxxxxz.com/jianli/free_2.html
https://sc.cxxxx.com/jianli/free_3.html

三、代码实现

1、新建一个模板的文件夹,将下载好的模板全部放进去

文件夹="模板"
if not os.path.exists(文件夹):
os.mkdir(文件夹)

2、构建动态爬取网址

动态目标地址="https://sc.Xxxxx.com/jianli/free_%d.html"
头={
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"
}
for pg in range(1,6):
if pg==1:
目标地址="https://sc.cxxxxz.com/jianli/free.html"
else:
目标地址=format(动态目标地址%pg)

3、获取响应页面的内容,出现乱码

响应内容 = requests.get(url=目标地址, headers=头).text
print(响应内容)



2023爬虫学习笔记 -- 某简历模板的爬取过程_Powered by 金山文档_03


4、对获取的内容进行编码处理

响应内容 = requests.get(url=目标地址, headers=头)
响应内容.encoding="utf-8"
编码后的内容=响应内容.text
print(编码后的内容)

5、从响应内容获取简历名称及详情页地址

数据解析=etree.HTML(编码后的内容)
数据列表=数据解析.xpath('//*[@id="container"]/div')
print(数据列表)
for i in 数据列表:
详情页=i.xpath('./a/@href')[0]
标题=i.xpath('./a/img/@alt')[0]
print(详情页,标题)

6、从详情页获取下载地址

详情页内容=requests.get(url=详情页, headers=头).text
#print(详情页内容)
数据解析=etree.HTML(详情页内容)
下载地址=数据解析.xpath('//*[@id="down"]/div[2]/ul/li[1]/a/@href')[0]
#print(下载地址)

7、获取下载地址

数据解析=etree.HTML(详情页内容)
下载地址=数据解析.xpath('//*[@id="down"]/div[2]/ul/li[1]/a/@href')

8、保存下载的内容

for i in 下载地址:
下载数据=requests.get(url=i,headers=头).content
保存路径=文件夹+'/'+标题
with open(保存路径,'wb') as fp:
fp.write(下载数据)



2023爬虫学习笔记 -- 某简历模板的爬取过程_python_04


9、完整代码

import os.path
import time
from lxml import etree
import requests
文件夹="模板"
if not os.path.exists(文件夹):
os.mkdir(文件夹)


动态目标地址="https://sc.XXXXX.com/jianli/free_%d.html"
头={
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"
}
for pg in range(1,2):
if pg==1:
目标地址="https://sc.XXX.com/jianli/free.html"
else:
目标地址=format(动态目标地址%pg)
响应内容 = requests.get(url=目标地址, headers=头)
响应内容.encoding="utf-8"
编码后的内容=响应内容.text
#print(编码后的内容)
数据解析=etree.HTML(编码后的内容)
数据列表=数据解析.xpath('//*[@id="container"]/div')
print(数据列表)
for i in 数据列表:
详情页=i.xpath('./a/@href')[0]
标题=i.xpath('./a/img/@alt')[0]+'.rar'
#print(详情页,标题)
详情页内容=requests.get(url=详情页, headers=头).text
#print(详情页内容)


数据解析=etree.HTML(详情页内容)
下载地址=数据解析.xpath('//*[@id="down"]/div[2]/ul/li[1]/a/@href')


#print(下载地址)
for i in 下载地址:
下载数据=requests.get(url=i,headers=头).content
保存路径=文件夹+'/'+标题
with open(保存路径,'wb') as fp:
fp.write(下载数据)

举报

相关推荐

0 条评论