在上一篇文章中,主要講解了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í)行。

項目中的文件很少,構(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)頁中的招聘信息,如下圖:可以看到,主要的招聘信息就在紅框部分。

我們的核心思路:我們應(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)簽,取出崗位的鏈接地址。
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>面議 <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>

思路清楚了,對網(wǎng)頁的分析完畢,下面我們開始代碼的編寫。
本文參考了lucky_yang_的博客;另外本文代碼地址:鏈接: https://pan.baidu.com/s/1jn1aloADaqoH2Ra5343SHQ 密碼: 55bc