使用Python爬取51job招聘網的資料

2021-10-23 10:21:00 字數 3159 閱讀 8825

進入這個**

我在這就以python為例搜尋職位跳轉到這個頁面

按f12進行檢視每個職位的資訊在哪個包中

我們點進這個包中搜尋

發現這組資料在script標籤中,類似於json資料,同時發現其鏈結的url的鍵值為job_href我們可以寫乙個正規表示式來獲取這些url方便後續獲取資訊,同時我們也發現這些url其實是被簡單修改過的,我們需要用re.sub處理一下

real_url=

url = re.findall(

'"job_href":"(.*?)"'

,page_text,re.s)

#職位詳情url

for each in url:

#把url裡的'\\/'改為'/',此時為真正的url

,'/'

,each)

)

我們已經找到了每乙個職位對應的url,於是我們遍歷這個url列表,爬取每乙個職位對應的資訊。

我們需要把公司名稱,招聘職位,崗位資訊,位址和公司簡介爬取到

對頁面裡的html原始碼進行xpath解析,可以獲取到上文的資訊,要使用try…except…對異常資料進行處理

我們可以使用pandas模組對爬到的資料進行儲存,同時我們發現換頁的時候只是其中乙個引數發生過改變,我們也可以寫乙個迴圈來爬取多頁

import requests

import lxml.etree

import os

import time

import re

import pandas as pd

xiangxi =

#詳細資訊

mingcheng =

#公司名稱

zhiwei =

#職位xinxi =

#崗位資訊

dizhi =

#公司位址

jianjie =

#公司簡介

gongzi =

#工資headers =

for page in

range(1

,11):

##11為爬取前10頁,這個資料可以更改

url =

''+str

(page)

+'.html?lang=c&postchannel=0000&workyear=99&cotype=99°reefrom=99&jobterm=99&companysize=99&ord_field='

response = requests.get(url = url,headers = headers)

#獲取資料

response.encoding=

'gbk'

#解碼 page_text = response.text

import re

url = re.findall(

'"job_href":"(.*?)"'

,page_text,re.s)

real_url =

for each in url:

,'/'

,each)

)for each in real_url:

response = requests.get(url = each,headers = headers)

response.encoding=

'gbk'

page_text2 = response.text

tree = lxml.etree.html(page_text2)

try:

" ".join(

'%s'%id

forid

in tree.xpath(

'//p[@class="msg ltype"]//text()'))

)except indexerror:

)try

:'//p[@class="cname"]/a//text()')[

0])#公司名稱

except indexerror:

)try

:'//div[@class="cn"]/h1//text()')[

0])#招聘職位

except indexerror:

)try

:" "

.join(

'%s'%id

forid

in tree.xpath(

'//div[@class="bmsg job_msg inbox"]/p//text()'))

)#崗位資訊

except indexerror:

)try

:'//div[@class="bmsg inbox"]/p[@class="fp"]//text()')[

1])#位址

except indexerror:

)try

:" "

.join(

'%s'%id

forid

in tree.xpath(

'//div[@class="tmsg inbox"]//text()'))

)#公司簡介

except indexerror:

)try

:'//div[@class="cn"]/strong//text()')[

0])#工資

except indexerror:

)dic1 =

df = pd.dataframe(dic1)

df.to_excel(

'招聘資訊.xlsx'

, index=

false

)

爬取51job的資訊

coding utf 8 import scrapy from items import jobspideritem class jobspider scrapy.spider name job allowed domains 51job.com start urls def parse self,...

爬取51job職位資訊

首先獲取一下所有城市對應的key值,找到所有城市所在的json字串,向json所在的js頁面傳送請求,獲取資訊,然後從第一頁獲取總的頁數,然後遍歷所有頁數,每到新的一頁,找到所有職位資訊的詳情頁url,遍歷詳情頁,獲取所要的職位資訊。請求並解析城市編碼函式 return 返回乙個字典 decode ...

python爬蟲 爬取51job網招聘資訊

專案概覽 在搜尋頁中,所有符合條件的職位資訊以列表的形式排序設有分頁顯示。每條職位資訊是乙個url 位址,通過url 位址可以進入該職位的詳情頁。職位詳情頁也是資料爬取的頁面,爬取的資料資訊有 職位名稱 企業名稱 待遇 福利以及職位要求等等。專案框架 具體步驟 一 獲取城市編號def get cit...