利用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,'下載成功')

爬取效果

因爲有幾百頁,此處就下載了一頁
在這裏插入圖片描述
在這裏插入圖片描述

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