從零開始實現(xiàn)scrapy爬取智聯(lián)招聘的崗位信息-2

在上一篇文章中,主要講解了anaconda和scrapy的安裝,接下來開始動手寫爬蟲。scrapy目前還只能在命令行中新建爬蟲、執(zhí)行爬蟲,一開始可能并不習(xí)慣。下面開始進(jìn)入anaconda Prompt ,通過以下命令新建一個newone爬蟲項目,并進(jìn)入到這個項目目錄中,新建一個 my_spider的爬蟲

# 創(chuàng)建一個名為newone的爬蟲項目
scrapy startproject newone
#進(jìn)入到爬蟲目錄
cd newone
#創(chuàng)建爬蟲,名字為my_spider,后面是爬蟲爬取數(shù)據(jù)的限制域名,即爬蟲只在改域名下爬取數(shù)據(jù)
scrapy genspider my_sipder zhaopin.com

這樣一個最基礎(chǔ)的爬蟲就算是創(chuàng)建好了,那么如何編寫爬蟲代碼呢 ?
anaconda 中有很多工具,我們打開anaconda Navigator ,打開Spyder,在該環(huán)境下編寫爬蟲的代碼,需要注意的是,我們只是使用Spyder工具書寫代碼,并不能在該環(huán)境運(yùn)行、調(diào)試爬蟲。運(yùn)行爬蟲還需要我們在命令行中執(zhí)行。

打開Spyder 后,我們找到File explorer ,從中定位到我們剛剛新建的爬蟲項目文件,如圖所示:
QQ截圖20180728092112.png

項目中的文件很少,構(gòu)成也很簡單,主要用到的有my_spider、items、pipelines這幾個文件。Scrapy編寫爬蟲的大致流程是:
(1)在items.py中定義我們想要爬取的內(nèi)容,例如我們爬取招聘信息,就要定義招聘人數(shù)、工資等。

(2)在my_spider.py中,書寫爬取過程,例如從哪個網(wǎng)頁開始,如何爬取,爬取內(nèi)容,返回到哪里都是自己編寫。
(3)在piplines.py中處理返回的結(jié)果,例如我們要將爬取的內(nèi)容保存到哪里?是json格式?TXT?還是數(shù)據(jù)庫中?

既然是爬取智聯(lián)招聘的招聘信息我們首先打開智聯(lián)招聘的網(wǎng)站,以爬取上海IT招聘崗位為例,我們把城市改為上海,并搜索IT。從頁面中可以看到,搜索結(jié)果在每頁有60條,下面還有很多翻頁。我們先打開其中的一頁,查看網(wǎng)頁中的招聘信息,如下圖:可以看到,主要的招聘信息就在紅框部分。

QQ截圖20180728095440.png

我們的核心思路:我們應(yīng)該從搜索結(jié)果頁面開始,首先提取出崗位的具體鏈接,然后打開該鏈接,爬取保存數(shù)據(jù),然后換一下個崗位鏈接,直到所有鏈接都遍歷。
有了這個思路,我們首先使用谷歌瀏覽器首先分析搜索結(jié)果頁面,按住shift+Ctrl+C即可快速定位到網(wǎng)頁的代碼處,經(jīng)過初步的分析可以看到,所有崗位鏈接其實存儲在一個table內(nèi),更具體一點,是存在<td class="zwmc" style="width: 250px;"> </td>。內(nèi)的div下的a的href內(nèi)。打開其他的崗位鏈接我們發(fā)現(xiàn),鏈接在網(wǎng)頁中也是在該結(jié)構(gòu)里面。因此,我們可以通過遍歷所有的td的class="zwmc"的標(biāo)簽,取出崗位的鏈接地址。
1.png
分析完搜索結(jié)果的頁面,我們分析具體的單頁中的元素構(gòu)成,還是按住shift+Ctrl+C鍵,我們定位到職位月薪:面議這個標(biāo)簽,具體如下圖,我已經(jīng)將多余代碼刪掉,我們發(fā)現(xiàn)所有的我們需要的信息都在div class="terminalpage-left">標(biāo)簽內(nèi),我們只需要找到這個div,然后找到下面的ul,再取出所有的li內(nèi)的數(shù)據(jù)就可以了。

<div class="terminalpage-left">
<ul class="terminal-ul clearfix">
<li><span>職位月薪:</span><strong>面議&nbsp;<a  target="_blank" title="上海工資計算器"><img src="http://jobs.zhaopin.com/images/calculator.png" alt="上海工資計算器"></a></strong></li>
<li><span>工作地點:</span><strong><a target="_blank" >上海</a>-長寧區(qū)</strong></li>
<li><span>發(fā)布日期:</span><strong><span id="span4freshdate">最近</span></strong></li>
<li><span>工作性質(zhì):</span><strong>全職</strong></li>
<li><span>工作經(jīng)驗:</span><strong>1-3年</strong></li>
<li><span>最低學(xué)歷:</span><strong>大專</strong></li>
<li><span>招聘人數(shù):</span><strong>3人 </strong></li>
<li><span>職位類別:</span><strong><a target="_blank" >IT技術(shù)支持/維護(hù)工程師</a></strong></li>
4.png

思路清楚了,對網(wǎng)頁的分析完畢,下面我們開始代碼的編寫。

本文參考了lucky_yang_的博客;另外本文代碼地址:鏈接: https://pan.baidu.com/s/1jn1aloADaqoH2Ra5343SHQ 密碼: 55bc

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容