爬蟲進(jìn)階:Scrapy 抓取 boss 直聘芳撒、拉勾心得經(jīng)驗(yàn)

關(guān)于使用Scrapy的體會(huì)邓深,最明顯的感受就是這種模板化、工程化的腳手架體系笔刹,可以說是拿來即可開箱便用芥备,大多僅需按一定的規(guī)則套路配置,剩下的就是專注于編寫跟爬蟲業(yè)務(wù)有關(guān)的代碼舌菜。絕大多數(shù)的反反爬蟲策略萌壳,大多有以下幾種:

  • 忽略robots.txt協(xié)議
  • 添加隨機(jī)請(qǐng)求頭,如cookie日月、user-agent等
  • sleep休眠
  • 控制并發(fā)請(qǐng)求數(shù)袱瓮、設(shè)置頁面下載延遲
  • 驗(yàn)證碼識(shí)別(靠譜)
  • 使用ip代理池(最靠譜)

文章的出發(fā)點(diǎn)是share本人使用scrapy爬取Boss和拉勾兩個(gè)招聘網(wǎng)的一些實(shí)操總結(jié)經(jīng)驗(yàn)。兩個(gè)網(wǎng)站的網(wǎng)頁結(jié)構(gòu)不盡相同爱咬,好在需要及提取出的最終數(shù)據(jù)基本保持了一致尺借,出于兩個(gè)網(wǎng)站不同的反爬策略和請(qǐng)求配置(settings.py),因此對(duì)應(yīng)實(shí)際的情況是兩個(gè)Scrapy項(xiàng)目精拟。

友情提醒燎斩,這里不介紹scrapy示例及完整代碼(Tip: 下方貼有完整代碼鏈接)虱歪。如文章標(biāo)題描述的那樣,由于拉勾和Boss都有各自不同的反爬策略栅表,多少也限制了一些爬蟲學(xué)習(xí)者的熱情笋鄙,包括我自身在內(nèi),不過多番嘗試之后還是有收獲的怪瓶,跑的是定時(shí)計(jì)劃局装,目前已入庫的有近三萬條數(shù)據(jù)。

Data

進(jìn)入正題劳殖,下面分別介紹拉勾網(wǎng)以及Boss直聘網(wǎng)崗位招聘數(shù)據(jù)的爬取心得,不過網(wǎng)站的反爬策略和網(wǎng)頁結(jié)構(gòu)隨時(shí)都有發(fā)生變動(dòng)的可能拨脉,因此還是需要根據(jù)實(shí)際情況進(jìn)行再調(diào)整哆姻。本次分享的內(nèi)容截止到2018年09月28日,在實(shí)際運(yùn)行項(xiàng)目中依然生效玫膀。

拉勾

  • 關(guān)閉默認(rèn)cookie(否則會(huì)跟請(qǐng)求頭中的Cookie沖突)矛缨,自定義請(qǐng)求headers并添加隨機(jī)Cookie屬性
    • settings.py中找到并設(shè)置COOKIES_ENABLED = False
    • 可以在spider代碼中為Request手動(dòng)添加headers,或者修改settings.py中的DEFAULT_REQUEST_HEADERS屬性帖旨,或者編寫自定義的HeadersMiddleware(繼承DefaultHeadersMiddleware箕昭,重寫process_request方法,別忘了配置)

拉勾網(wǎng)的cookie解阅,用uuid隨機(jī)生成即可落竹,參考如下:

    def random_cookie():
        args = (uuid.uuid4(),) * 5
        cookie = 'user_trace_token={}; LGUID={}; JSESSIONID={}; LGSID={}; LGRID={}'.format(*args)

        return cookie
  • 控制并發(fā)請(qǐng)求數(shù)及設(shè)置下載延遲

settings.py中找到并設(shè)置如下,因此理論上一天可抓60/2 * 2 * 60 * 24 =86400條數(shù)據(jù):

    # 當(dāng)并發(fā)數(shù)和下載延遲均設(shè)置為2時(shí)货抄,沒有出現(xiàn)反爬限制(可多次嘗試)
    CONCURRENT_REQUESTS = 2
    DOWNLOAD_DELAY = 2

補(bǔ)充:上述說明中述召,請(qǐng)求Cookie是必須要加的,否則會(huì)重定向到登錄頁面蟹地;在未使用ip代理的情況下积暖,并發(fā)數(shù)不宜設(shè)置過大,親測(cè)是直接封了IP...

Boss直聘

對(duì)比拉勾網(wǎng)怪与,感覺直聘網(wǎng)的反爬策略會(huì)更加嚴(yán)格夺刑,不過抓慢一點(diǎn)還是可以的(這樣理論上一天是60/5 * 1 * 60 * 24 =17280條數(shù)據(jù))

  • 設(shè)置隨機(jī)User-Agent(可能非必需)

  • 控制并發(fā)請(qǐng)求數(shù)、下載延遲

    # 這么慢還是被限制...
    CONCURRENT_REQUESTS = 1
    DOWNLOAD_DELAY = 5
  • 加入驗(yàn)證碼識(shí)別

事實(shí)上分别,這種情況下限制后是被重定向到一個(gè)驗(yàn)證碼頁面遍愿。本人目前的解決方案是編寫自定義的CustomRedirectMiddleware(繼承RedirectMiddleware,重寫process_response方法進(jìn)行驗(yàn)證碼識(shí)別[第三方API])

小結(jié)

分享的都是比較曲中的解決方案茎杂,不差錢的建議直接上ip代理(實(shí)測(cè)過免費(fèi)的错览,別指望了)。

相關(guān)代碼 - 拉勾
相關(guān)代碼 - boss
歡迎關(guān)注我的個(gè)人公眾號(hào):超級(jí)碼里奧
如果這對(duì)您有幫助煌往,歡迎點(diǎn)贊和分享倾哺,轉(zhuǎn)載請(qǐng)注明出處

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末轧邪,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子羞海,更是在濱河造成了極大的恐慌忌愚,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件却邓,死亡現(xiàn)場(chǎng)離奇詭異硕糊,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)腊徙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門简十,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人撬腾,你說我怎么就攤上這事螟蝙。” “怎么了民傻?”我有些...
    開封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵胰默,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我漓踢,道長(zhǎng)牵署,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任喧半,我火速辦了婚禮奴迅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘挺据。我一直安慰自己半沽,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開白布吴菠。 她就那樣靜靜地躺著者填,像睡著了一般。 火紅的嫁衣襯著肌膚如雪做葵。 梳的紋絲不亂的頭發(fā)上占哟,一...
    開封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音酿矢,去河邊找鬼榨乎。 笑死,一個(gè)胖子當(dāng)著我的面吹牛瘫筐,可吹牛的內(nèi)容都是我干的蜜暑。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼策肝,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼肛捍!你這毒婦竟也來了隐绵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤拙毫,失蹤者是張志新(化名)和其女友劉穎依许,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缀蹄,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡峭跳,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了缺前。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蛀醉。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖衅码,靈堂內(nèi)的尸體忽然破棺而出滞欠,到底是詐尸還是另有隱情,我是刑警寧澤肆良,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站逸绎,受9級(jí)特大地震影響惹恃,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜棺牧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一巫糙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧颊乘,春花似錦参淹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至檩小,卻和暖如春开呐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背规求。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工筐付, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人阻肿。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓瓦戚,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親丛塌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子较解,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

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

  • scrapy學(xué)習(xí)筆記(有示例版) 我的博客 scrapy學(xué)習(xí)筆記1.使用scrapy1.1創(chuàng)建工程1.2創(chuàng)建爬蟲模...
    陳思煜閱讀 12,655評(píng)論 4 46
  • “接機(jī)”的寶寶畜疾。
    smile絲嘜小主閱讀 102評(píng)論 0 0
  • 我懷著美麗的心情來寫文章呢 我是一個(gè)小寶貝:天天做著我開心快樂的事,好享受好享受 我一直喜歡做我自己哨坪,因?yàn)槲沂仟?dú)一...
    簡(jiǎn)寧寶兒閱讀 143評(píng)論 0 0
  • 每逢佳節(jié)胖三斤当编,果不其然届慈,佳節(jié)過后,我居然胖了15斤7尥怠=鸲佟! 人有的時(shí)候很奇怪鲤桥,總不會(huì)覺得自己胖揍拆,我就是這樣的...
    Apple亮晶晶閱讀 144評(píng)論 0 0
  • 2017年7月30日 星期日 天氣陰 今天繼續(xù)學(xué)習(xí)會(huì)計(jì)學(xué),由于崗位職責(zé)因素茶凳,原來我對(duì)這門課程是一...
    李佳怡爸爸閱讀 357評(píng)論 0 2