利用xpath爬取站长网站的免费简历模板

爬前须知

xpath解析原理:
1.实例化一个etree对象,且仅需要将被解析的页面源码加载到该对象中
2.调用etree对象中的xpath方法结合着xpath表达式实现标签的定位和内容的捕获

  • 环境安装:
    pip install lxml
    -分析步骤:
    1.把第一个网页的所有简历的新页面url获取到
    2.到详情页,获取下载地址,对下载地址发起请求
    3.完成之后,再考虑进行分页操作

#常规步骤:’’‘举例
0.创建文件夹用来存放爬取到的数据
{
if not os.path.exists(’./moban’):
os.mkdir(’./moban’)
}
1.获取url响应数据 page_text
2.实例化一个对象 tree,通过 etree.HTML(page_text)
3.利用xpath工具定位到想要获取的内容 tree.xpath(’/div[@class=‘ss’]/ul/li/a’)
4.for循环遍历获得多个属性,并进行提取alt = li.xpath(’./a/img/@alt’)[0]
5.进行持久化存储
{
1.获得新的url对应图片的响应数据 data = requests.get().content
2.img_path = ‘moban/’+img_name
}
‘’’
注意
1.通过观察第一页的url :http://sc.chinaz.com/jianli/free.html
与后面页面的规律不同,需要额外爬取。即爬取第一页,和第二页到第N页的模板。
2…rar文件可以二进制文件形式写入
3.获取新的url之后,需要对新的url进行实例化,这一步很容易遗漏

代码

import requests
import os
from lxml import etree

if not os.path.exists('./moban'):
    os.mkdir('./moban')
#requests
url = 'http://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/80.0.3987.106 Safari/537.36'
}
response = requests.get(url=url,headers=headers)
#设定编码格式为中文
response.encoding = 'utf-8'
page_text = response.text
#xpath
tree = etree.HTML(page_text)
#获取所有的a标签
a_list = tree.xpath('//*[@id="container"]/div/a')

for li in a_list:
    new_url= li.xpath('./@href')[0]
    #print(new_url)   #打印出获取的html
    
    mb_name = li.xpath('./img/@alt')[0]
    #print(mb_name)   #打印出模板的名字
    mb_name= mb_name+'.rar'

    down_data = requests.get(url=new_url,headers=headers).text
    
    #再次实例化一个xpth对象
    xiazai = etree.HTML(down_data)
    down_list = xiazai.xpath('//*[@id="down"]/div[2]/ul/li[3]/a')
    for li in down_list:
        down = li.xpath('./@href')[0]
        #print(down)
        last_data = requests.get(url=down,headers=headers)
        last_data.encoding = 'utf-8'
        last_data= last_data.content
        #已经获取到了下载链接down,下面进行持久化存储即可
        path='./moban/'+mb_name
        with open(path,'wb') as fp:
            fp.write(last_data)
            print(mb_name,'下载成功')

爬取效果

因为有几百页,此处就下载了一页
在这里插入图片描述
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章