爬取拉鉤上海Python職位信息并存入MongoDB數(shù)據(jù)庫

昨天準(zhǔn)備爬拉鉤的python職位數(shù)據(jù)舌剂,用了老辦法bs4+requests發(fā)現(xiàn)數(shù)據(jù)是空的,心情so downH蘧弧!經(jīng)過網(wǎng)上的查詢才明白闪金,拉鉤使用Ajax技術(shù)疯溺,用bs4查找html元素是找不到數(shù)據(jù)的论颅。今天我總結(jié)下學(xué)習(xí)過程哎垦,也算是鞏固自己的知識了!J逊琛漏设!

分析網(wǎng)頁

登陸拉鉤網(wǎng)站,打開開發(fā)者功能
[圖片上傳失敗...(image-b6ac08-1512815188537)]

我們先用requests發(fā)送請求并保存一個html今妄,來查看數(shù)據(jù)

import requests
import random 

user_agents = [
'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36',
    'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.2995.0 Safari/537.36',
    'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2986.0 Safari/537.36',
    'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.0 Safari/537.36',
    'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.0 Safari/537.36',
    'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.0 Safari/537.36',
    'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.0 Safari/537.36',
    'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.0 Safari/537.36',
    'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.0 Safari/537.36',
    'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.0 Safari/537.36',
    'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.0 Safari/537.36',
    'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.0 Safari/537.36'
]

headers = {
    'Host': 'www.lagou.com',
    'Referer': 'https://www.lagou.com/zhaopin/Python/?labelWords=label',
    'Upgrade-Insecure-Requests': '1',
    'User-Agent': random.choice(user_agents)
}

url = 'https://www.lagou.com/jobs/list_Python?px=default&city=%E4%B8%8A%E6%B5%B7#filterBox'
r = requests.get(url, headers=headers)
result = r.text
#print(r.text)
# 寫入logou.html
with open('laogou.html', 'w', encoding='utf-8') as f:
    f.write(result)

運行代碼試一下郑口,代開lagou.html鸳碧,我們看到職位信息數(shù)據(jù)是沒有的

[圖片上傳失敗...(image-4a7f52-1512957356176)]

接下來,我們再觀察下Chrome開發(fā)者工具的NetWork一欄犬性,類型選擇XHR瞻离,找到下面這個鏈接,我們可以看到有Ajax、Json幾個關(guān)鍵字乒裆,點擊Preview

[圖片上傳失敗...(image-d6f890-1512957356176)]

按順序分別點開紅框套利,就得到我們想要的數(shù)據(jù)啦
[圖片上傳失敗...(image-f6b3c3-1512957356176)]

現(xiàn)在來試著寫一下,注意這里的請求是post鹤耍,帶上表單肉迫,改變請求頭的數(shù)據(jù)

data = {
    'first': 'true',
    'pn': 1,
    'kd': 'Python'
}

r = requests.post(url, headers=headers, data=data).json()
positions = r['content']['positionResult']['result']
print(positions)

Run一下,返回的數(shù)據(jù)就是我們想要的啦8寤啤:吧馈!

[圖片上傳失敗...(image-3446d5-1512957356176)]

翻頁

我們觀察下表單內(nèi)有一個pn參數(shù)杆怕,這就是頁碼族购,大家可以跳轉(zhuǎn)頁面來觀察下數(shù)據(jù)的變化


for i in range(1, 17):
    data = {
        'first': 'true',
        'pn': i,
        'kd': 'Python'
    }

url = 'https://www.lagou.com/jobs/positionAjax.json?px=default&city=%E4%B8%8A%E6%B5%B7&needAddtionalResult=false&isSchoolJob=0'

r = requests.post(url,  headers=headers, data=data)
time.sleep(3)
print(json.url)

這樣就把16頁鏈接都打印了出來

[圖片上傳失敗...(image-584b63-1512957356176)]

爬取拉鉤的思路就是這樣,完整代碼在GitHub陵珍,歡迎大家訪問A摹!3沤獭3铡!N敖恪收苏!假如覺得有用點個star噢!愤兵!互勉B拱浴!8讶椤E呈蟆!R傺摺8匾薄!3都睦袖!

最后,附上一張爬下來的數(shù)據(jù)截圖
[圖片上傳失敗...(image-50bd3b-1512957356176)]

歡迎訪問博客Treehl的博客
GitHub
簡書
爬蟲集合

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末荣刑,一起剝皮案震驚了整個濱河市馅笙,隨后出現(xiàn)的幾起案子伦乔,更是在濱河造成了極大的恐慌,老刑警劉巖董习,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件烈和,死亡現(xiàn)場離奇詭異,居然都是意外死亡皿淋,警方通過查閱死者的電腦和手機(jī)斥杜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沥匈,“玉大人蔗喂,你說我怎么就攤上這事「咛” “怎么了缰儿?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長散址。 經(jīng)常有香客問我乖阵,道長,這世上最難降的妖魔是什么预麸? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任瞪浸,我火速辦了婚禮,結(jié)果婚禮上吏祸,老公的妹妹穿的比我還像新娘对蒲。我一直安慰自己,他們只是感情好贡翘,可當(dāng)我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布蹈矮。 她就那樣靜靜地躺著,像睡著了一般鸣驱。 火紅的嫁衣襯著肌膚如雪泛鸟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天踊东,我揣著相機(jī)與錄音北滥,去河邊找鬼。 笑死闸翅,一個胖子當(dāng)著我的面吹牛再芋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播缎脾,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼祝闻,長吁一口氣:“原來是場噩夢啊……” “哼占卧!你這毒婦竟也來了遗菠?” 一聲冷哼從身側(cè)響起联喘,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎辙纬,沒想到半個月后豁遭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡贺拣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年蓖谢,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片譬涡。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡闪幽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出涡匀,到底是詐尸還是另有隱情盯腌,我是刑警寧澤,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布陨瘩,位于F島的核電站腕够,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏舌劳。R本人自食惡果不足惜帚湘,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望甚淡。 院中可真熱鬧大诸,春花似錦、人聲如沸贯卦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽脸侥。三九已至建邓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間睁枕,已是汗流浹背官边。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留外遇,地道東北人注簿。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像跳仿,于是被迫代替她去往敵國和親诡渴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,060評論 2 355

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