實戰 02 爬取成都某設計院的招聘資訊 02

2021-10-08 21:02:34 字數 2066 閱讀 7849

昨天寫了第一版**,爬取了該**的招聘主頁面資訊,今天寫了第二版**,來爬取其內嵌的子頁面資訊。

# 0 匯入所需的包

import requests

from lxml import etree

# 1、構造請求

url =

""headers =

# 2、得到返回資訊

response = requests.

get(url,headers=headers)

text = response.text

# 3、對返回的資訊進行整理清洗

html = etree.

html

(text)

lis = html.

xpath

("//div[@class='list-wrap']/div[@class='position-item']"

)job_messages =

for li in lis:

position_url =

""+ li.

xpath

(".//a/@href")[

0]# 3.1 對所有獲得到的子url再次進行請求,並獲取資訊進行xpath解析。

res = requests.

get(position_url,headers=headers)

infor = res.text

son_html = etree.

html

(infor)

job_position = son_html.

xpath

("//div[@class='position-info clearfix']/span/text()")[

0]job_year = son_html.

xpath

("//div[@class='position-info clearfix']/span/text()")[

1]job_school = son_html.

xpath

("//div[@class='position-info clearfix']/span/text()")[

2]job_number = son_html.

xpath

("//div[@class='position-info clearfix']/span/text()")[

3]job_describe = son_html.

xpath

("//div[@class='position-desc']/p/text()"

) # 3.2 將所獲得的的職位描述資訊進行合併處理(還有待改進)

job_str =

""for i in

range

(len

(job_describe)):

job_str = job_str + job_describe[i]

# 3.3 將子頁面資訊存入字典中

job_message =

job_messages.

(job_message)

# 4、將獲取的資訊儲存在本地

with

open

("job_messages.csv"

,"w"

,encoding=

'utf-8'

)as fp:

for li in job_messages:

fp.write

(str

(li)

) fp.

write

(","

) fp.

write

("\n"

) fp.

close

()

第二版相比於第一版的複雜性上有了一定的提公升,但是還有以下幾個方面需要進一步提公升:

(1)如何將職位描述資訊更好地合併並顯示?

(2)資訊在列表中怎樣以結構化的資料進行儲存?

(3)如何將主頁面和子頁面的資訊更好地同時儲存在乙個檔案中展示?

這些都是後續第三版需要進一步提公升改進的。

用Request爬取實戰

如果想要在請求的時候增加一些請求頭,用request.request。比如要增加乙個user agent 在拉勾網的職業資訊通過另外的 再通過js嵌入到主頁面的html 當中的 真正的職業資訊 在json.cn中解碼得 請求頁面,還有請求方式為post from urllib import requ...

某房產網資訊爬取

有反爬,出現訪問驗證!窮人,手裡沒啥 因為是著名大站,所以只貼出部分,防止侵權或者非法用途等等,僅供學習交流,我也是個菜!愁人!class ftxspider scrapy.spider name ftx allowed domains fang.com start urls def parse s...

爬取某學校官網通知

需求 有時候對於學生黨來說,每次大考之後,查分數都是特別心急,特別是對於學校官網的通知等,本筆記主要關注這一點,以下是實現內容。使用 urllib 和 beautifulsoup 庫實現 import urllib.request import urllib.parse from bs4 impor...