寫個圖片爬蟲,scrapy,python第一次接觸(停止更新)

1、安裝python,裝2.7就好了,因爲scrapy裏面要求的一些支撐包沒有3.3版本的。有windows的安裝包,無壓力

2、安裝scrapy,看官網的安裝指導,裝一大堆,都快想吐了

3、照着入門教程做一個簡單的,順便看看scrapy 的架構圖,瞭解XPath選擇器

這些都說的挺略,時間有點長,記不得細節,也沒有多少難度

4、我的第一個抓爬目標是mmonly,靜態的而且沒有js,最終目標是爬新浪微博的圖而且不用api,所以接觸了image pipeline,裏面有個地方特別坑


image pipeline錯誤: exceptions.KeyError: 'image_urls'    更新時間:2013.08.09

要將分析到的圖片鏈接放到item裏面的image_urls裏面,這個東東分明是個list,我用append來加入,運行會有錯誤提示

別人的代碼是item['image_urls'] = hxs.select('//*..******').extract(),這樣的確可以,而且有了這個賦值之後,在用append加入字符串(url)就可以正確下載了


image pipeline 下載路徑    更新時間:2013.08.11

我想將爬下來的圖片一組組的分開文件夾放置,但是官網教程的只是在setting.py裏面規定路徑

打算在自己實現的那個pipeline裏面修改一下文件名,下載完成後分類到新建的文件夾裏面(這個工作我用C++在windows下寫過類似的功能)

第一步,獲取相關路徑,先獲得當前目錄os.getcwd(),然後讀取scrapy.cfg,在追蹤settings.py,本來直接寫進文件就好了,手賤

用到configparser,不過settings.py沒有section,解析不了,自己解析了唯有,其實簡單的字符串操作而已

第二步,利用os模塊,從設置存儲位置複製到自己的設計的目錄。如果用硬要移動的話,shutil模塊


XPath介紹使用

中文學習:www.w3school.com.cn/xpath

scrapy提供的教程:http://doc.scrapy.org/en/latest/topics/selectors.html

記得在命令行中用 scrapy shell <待分析網頁url>,基於iPython,方便測試和一開始學習

可以用chrome的審查元素方便對着看,右鍵還可以copy xpath,不過跟scrapy實現的不是完全兼容

絕對路徑的xpath會比模糊的要快,例如/html/body/div[3]/p會比//*[class="xxx"]/p要快


crawl抓取單個頁面的圖片,測試  

按照Scrapy Tutorial和Downloading Item Images的步驟,應該可以解析單個網頁(還要會用Xpath),簡單測試一下


spider的寫法

spider主要負責分析和截獲網頁內容的功能,那麼爬出來可能有兩種url:

1、作爲下一個要分析的網頁url,分析出來就是存在item裏面的,這個url應該交由parseItem函數去分析

2、這個url裏面的數據不是存入item的,但是可以從這個url分析出更多的上一類的url,我交給parse函數去分析

start_urls默認就是交由parse處理的。所以Tutorial才強調spider至少有三個成員嘛

在做parse的函數裏面產生request,Request(next_url, callback = self.parseItem),那麼這個next_url就會交由parseItem去分析了


防·反爬蟲

我第一次的作品就是爬圖片,爬的對象是mmonly

一開始沒有做avoid banning的工作,只能下載幾張圖片,其他所有的圖片都下不了(我也懷疑是家裏或者外部網絡的原因)

打擊了我一天多後,查反爬蟲技巧,看scrapy的相關文檔,我做了如下工作

1、禁用Cookies

2、設置User Agent。查看user agent:在chrome中,地址欄輸入chrome://version/

今晚爬了一下煎蛋的妹子圖,成功了哦。再次嘗試這個mmonly的時候,竟然就可以了,下載飛快


scrapy image pipeline批量抓取圖片爬蟲 python源代碼

連github小貓都下載不了,有需要參考的評論留郵箱吧。

這個第一次的小作品,沒有涉及js的處理


下一步,將Item 的信息記錄下來,暫時用csv等方式好了,遲些在加入數據庫

簡單避免重複下載,存儲基本內容。

源碼:http://pan.baidu.com/s/1kV1vc
不再更新嘍,在準備考研。


發佈了61 篇原創文章 · 獲贊 20 · 訪問量 28萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章