Python爬取51Job招聘信息

1何乎、 準(zhǔn)備工作

分析51job招聘信息頁面篙耗,如圖所示,紅框標(biāo)記的是頁碼宪赶,將URL分割為兩個(gè)部分宗弯,爬取多個(gè)頁面是需要修改頁碼信息


分析請求響應(yīng)信息,請求時(shí)需要模擬瀏覽器請求信息搂妻,如下圖蒙保,包括header信息和cookie信息;響應(yīng)結(jié)果在頁面的javascript標(biāo)簽中欲主,需要通過正則表達(dá)式解析響應(yīng)結(jié)果邓厕。



2、 用到的Python庫

requests:模擬瀏覽器請求

re:正則表達(dá)式

json:字符串轉(zhuǎn)json

pandas:excel操作

3扁瓢、代碼

import json

import re

import time

import requests

import pandasas pd

'''

pre_url: url前綴suf_url: url后綴headers: 請求頭cookies: Cookie

page_num: 爬取頁數(shù)'''

def get_data(pre_url, suf_url, headers, cookies, page_num):

for iin range(1, page_num):

print("爬取第" +str(i) +"頁數(shù)據(jù)")

url = pre_url +str(i) + suf_url

web = requests.get(url, headers=headers, cookies=cookies)

web.encoding ='gbk'

? ? ? ? print(web.text)

r = re.findall('window.__SEARCH_RESULT__ = (.*?)</script>', web.text, re.S)

string =''.join(r)

info_dict = json.loads(string)

job_list = info_dict['engine_jds']

JobName = []

Providesalary = []

Workarea = []

Attribute = []

Companyname = []

Companysize = []

Companytype = []

Jobwelf = []

Companyind = []

Suedate = []

for objin job_list:

JobName.append(obj['job_name'])

Providesalary.append(obj['providesalary_text'])

Workarea.append(obj['workarea_text'])

Attribute.append(' '.join(obj['attribute_text'][1:]))

Companyname.append(obj['company_name'])

Companysize.append(obj['companysize_text'])

Companytype.append(obj['companytype_text'])

Jobwelf.append(obj['jobwelf'])

Companyind.append(obj['companyind_text'])

Suedate.append(obj['issuedate'])

data = pd.DataFrame()

data["工作名稱"] = JobName

data["工資待遇"] = Providesalary

data["工作地點(diǎn)"] = Workarea

data["職位要求"] = Attribute

data["公司名稱"] = Companyname

data["公司規(guī)模"] = Companysize

data["公司類別"] = Companytype

data["公司福利"] = Jobwelf

data["主營業(yè)務(wù)"] = Companyind

data["發(fā)布日期"] = Suedate

print(data)

try:

data.to_csv("51Job烏魯木齊招聘信息.csv", mode="a+", header=None, index=None, encoding="utf-8")

except:

print("跳轉(zhuǎn)網(wǎng)頁详恼,無數(shù)據(jù)")

time.sleep(1)

# Press the green button in the gutter to run the script.

if __name__ =='__main__':

pre_url ="https://search.51job.com/list/310200,000000,0000,00,9,99,+,2,"

? ? suf_url =".html?lang=c&postchannel=0000&workyear=99&cotype=99°reefrom=99&jobterm=99&companysize=99&ord_field=0&dibiaoid=0&line=&welfare="

? ? headers = {

'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',

? ? ? ? 'Accept-Encoding':'gzip, deflate, br',

? ? ? ? 'Accept-Language':'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',

? ? ? ? 'Cache-Control':'max-age=0',

? ? ? ? 'Connection':'close',

? ? ? ? 'Referer':'https://search.51job.com/',

? ? ? ? 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62'

? ? }

cookies = {

"Cookie":"_uab_collina=164515157588672382024854; guid=ffafb018452895c75b5ff63cd2fb9563; nsearch=jobarea%3D%26%7C%26ord_field%3D%26%7C%26recentSearch0%3D%26%7C%26recentSearch1%3D%26%7C%26recentSearch2%3D%26%7C%26recentSearch3%3D%26%7C%26recentSearch4%3D%26%7C%26collapse_expansion%3D; slife=lastvisit%3D310200%26%7C%26; privacy=1646033921; search=jobarea%7E%60310200%7C%21ord_field%7E%600%7C%21recentSearch0%7E%60310200%A1%FB%A1%FA000000%A1%FB%A1%FA0000%A1%FB%A1%FA00%A1%FB%A1%FA99%A1%FB%A1%FA%A1%FB%A1%FA99%A1%FB%A1%FA99%A1%FB%A1%FA99%A1%FB%A1%FA99%A1%FB%A1%FA9%A1%FB%A1%FA99%A1%FB%A1%FA%A1%FB%A1%FA0%A1%FB%A1%FA%A1%FB%A1%FA2%A1%FB%A1%FA1%7C%21recentSearch1%7E%60310200%A1%FB%A1%FA000000%A1%FB%A1%FA0000%A1%FB%A1%FA00%A1%FB%A1%FA99%A1%FB%A1%FA%A1%FB%A1%FA99%A1%FB%A1%FA99%A1%FB%A1%FA99%A1%FB%A1%FA99%A1%FB%A1%FA9%A1%FB%A1%FA99%A1%FB%A1%FA%A1%FB%A1%FA0%A1%FB%A1%FA-java%A1%FB%A1%FA2%A1%FB%A1%FA1%7C%21collapse_expansion%7E%601%7C%21; acw_tc=76b20fe516460406333445179e1863f701fac22d0d83677b10737d6e54a7ab; acw_sc__v2=621c9639e08991e176e0cadd6a8c5f5ea4dabb36; ssxmod_itna=Yq0xcDyD2A0QG=qD=DXm3fSosD78beb1Dg0i=nhnmx0v+xPGzDAxn40iDtrO59hfuDq1YGAPrF3YpSa2tX74aRDb6G4W2D3DU4i8DCL2F4WDemtD5xGoDPxDeDA7KiTDY4DdXxYPG0DiKDpx0kG25D7ZF41lKDTPYDRgaGDQyk9gPmx407DiHq920kD75pDlpxIRYD018f1Av1GRG=qlDDUmR60n2bMbb5xqi36m9Gq40OD0FGXxibG6g6Rav14w+e6QxPDaDPKlbq3iDowDrP=QIxmni5bGiQtYxTmlGx=WKKYmrKDDp4Z4PWGD4D==; ssxmod_itna2=Yq0xcDyD2A0QG=qD=DXm3fSosD78beb1Dg0i=nhnDnKd2qDsKoDLGYhnav7bAi3Fw8MYYm7=w3ifeEjpMIeq8=EdxnRI=ayekyb=8lFkEnXmpQKjjLW=z/=ORRGLUKMRowcU3gBbUOXpQBUZKAKDq33ZUSi4OMi47CE5IjIhQf2M7l03ulie7eiK7CYP3b0k3lfr2CXFoLwZYQpaNWhk57XKYh9hK0G5i7j187j9tQ61U+eZtl3o=3n9lCI88kow8U=4a+0KyOBx0fGD5BOG1KZfNVSxC69Kwz3DkQM79FxD=3zinLzb=QZ16Kjmhx0YPw3ONv1=5Avpa6phdYz6iPvLB3=1pU1Q56d5FwG05=pEhWbiR5TKRQxYW23FUvPzNAPb9Q=8/=0YLjBUa60ezpEErjiTop2DhW==Qtb0bgnQEuv+nFz6r2uS=e9CbT2TUzEWIAHguA82m/=4=RTKnSc2I9uR4uffo9WXZoTv+dFDG2Sr3SG4IRt4FA0htBx4Y2sqQEYl=R2HbxDFqD+oLNQG5D4PEDqBpKnhn0G5AmKAdCEjryxxD==="

? ? }

get_data(pre_url, suf_url, headers, cookies, 51)

4、爬取結(jié)果


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末引几,一起剝皮案震驚了整個(gè)濱河市昧互,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌伟桅,老刑警劉巖敞掘,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異楣铁,居然都是意外死亡玖雁,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門盖腕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赫冬,“玉大人浓镜,你說我怎么就攤上這事【⒀幔” “怎么了竖哩?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長脊僚。 經(jīng)常有香客問我相叁,道長,這世上最難降的妖魔是什么辽幌? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任增淹,我火速辦了婚禮,結(jié)果婚禮上乌企,老公的妹妹穿的比我還像新娘虑润。我一直安慰自己,他們只是感情好加酵,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布拳喻。 她就那樣靜靜地躺著,像睡著了一般猪腕。 火紅的嫁衣襯著肌膚如雪冗澈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天陋葡,我揣著相機(jī)與錄音亚亲,去河邊找鬼。 笑死腐缤,一個(gè)胖子當(dāng)著我的面吹牛捌归,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播岭粤,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼惜索,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了剃浇?” 一聲冷哼從身側(cè)響起巾兆,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎偿渡,沒想到半個(gè)月后臼寄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡溜宽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了质帅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片适揉。...
    茶點(diǎn)故事閱讀 39,841評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡留攒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嫉嘀,到底是詐尸還是另有隱情炼邀,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布剪侮,位于F島的核電站拭宁,受9級特大地震影響壹粟,放射性物質(zhì)發(fā)生泄漏秀姐。R本人自食惡果不足惜凤优,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一树枫、第九天 我趴在偏房一處隱蔽的房頂上張望忿峻。 院中可真熱鬧财松,春花似錦堪伍、人聲如沸靡砌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至绪爸,卻和暖如春湾碎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背奠货。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工胜茧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人仇味。 一個(gè)月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓呻顽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親丹墨。 傳聞我的和親對象是個(gè)殘疾皇子廊遍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容