進入這個**
我在這就以python為例搜尋職位跳轉到這個頁面
按f12進行檢視每個職位的資訊在哪個包中
我們點進這個包中搜尋
發現這組資料在script標籤中,類似於json資料,同時發現其鏈結的url的鍵值為job_href我們可以寫乙個正規表示式來獲取這些url方便後續獲取資訊,同時我們也發現這些url其實是被簡單修改過的,我們需要用re.sub處理一下
我們已經找到了每乙個職位對應的url,於是我們遍歷這個url列表,爬取每乙個職位對應的資訊。real_url=
url = re.findall(
'"job_href":"(.*?)"'
,page_text,re.s)
#職位詳情url
for each in url:
#把url裡的'\\/'改為'/',此時為真正的url
,'/'
,each)
)
我們需要把公司名稱,招聘職位,崗位資訊,位址和公司簡介爬取到
對頁面裡的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...