python用requests库和xpath爬取站长素材的免费简历模板

站长素材免费简历模板的url:https://sc.chinaz.com/jianli/free.html

开始前先说一下爬虫思路,requests和xpath简单的使用方法):

先打开网页

(分析)按F12,然后点击左上角的检查功能并随便点一个模板,里面<p>的href就是这个模板的下载页面的url(本页面我们需要爬取的)

然后点击任意一个模板,他会跳转到下载页面:

 (分析)进入下载页面后往下拉就能看到下载地址,接下来就跟上面分析的一样(爬到这里的url就可以下载了)

requests和下xpath的简单使用:

        要爬取上面提到的url,就得先用requests爬整个页面的源码然后再通过xpath筛选出url

页面源码 = requests.get(url='所处页面的url').text

选择要进行筛选的代码 = etree.HTML('页面源码')

选择要进行筛选的代码.xpath('进行筛选')

简单说一下xpath里面筛选的语法:

例子://div[@id="a1"]//img/@href

说明:筛选由ID为‘a1’的div开始下面任意层的img里的href属性

/:下一层                //:下任意层

@:属性前面需要加这个

!xpath返回的结果都是列表O

最后是代码:

#导入库
import requests
import os
from lxml import etree
#创建文件夹,方便等一下存储数据
if not os.path.exists('./结果'):
    os.mkdir('./结果')

#--------------------------------------------------第一个页面
begin_url = 'https://sc.chinaz.com/jianli/free.html'#指定开始页面的url
header = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36 Edg/103.0.1264.49'
}
begin_text = requests.get(url=begin_url, headers=header).text#发起请求获取页面源码
begin_tree = etree.HTML(begin_text)#选择要筛选的代码
begin_href_list = begin_tree.xpath('//div[@id="main"]//p/a/@href')#对选择的代码进行筛选,选出每个简历的下载页面的url

#--------------------------------------------------第二个页面
#xpath返回的都是列表,需要用循环把筛选到的url一个个给他提出来再一个个发起请求
during_href_list = []
for during_url in begin_href_list:
    during_url = 'https:'+during_url#因为筛选出的url少了“https:”,所以给他补上
    during_text = requests.get(url=during_url, headers=header).text#重复上面获取源码的操作
    during_tree = etree.HTML(during_text)
    during_href = during_tree.xpath('//div[@id="down"]//ul//a[1]/@href')[0]#前面说了xpath返回的都是列表,如果不提出来等一下将返回很多列表
    during_href_list.append(during_href)#然后加到前面创好的列表里

#--------------------------------------------------下载
#和上面一样的思路
for end_url in during_href_list:
    end_content = requests.get(url=end_url, headers=header).t#这里爬到的是压缩包,要是用“conten”
    #下面是存储爬到的数据
    end_name = end_url.split('/')[-1]#文件名
    end_path = './结果/'+end_name#文件路径
    with open(end_path, 'wb') as o:#打开并存储
        o.write(end_content)
    print(end_name+'下载完成')



 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

囧粥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值