python之scrapy實戰爬取表情包

前言:在以前咱們學習了scrapy框架的基本使用,今天咱們經過實戰(爬取http://www.doutula.com的套圖)來更加了解scrapy框架額使用,僅以此來告別咱們的爬蟲入門,後續會有一些反爬,驗證碼識別,數據分析的文章。下次咱們就從基礎開始學習python,中間也有可能會穿插一些有趣的東西。來幫助咱們學習python。

注意:不少人學Python過程當中會遇到各類煩惱問題,沒有人幫答疑。爲此小編建了個Python全棧免費答疑交流.裙 :一久武其而而流一思(數字的諧音)轉換下能夠找到了,不懂的問題有老司機解決裏面還有最新Python教程項目可拿,,一塊兒相互監督共同進步!

css

1、爬取表情包思路(http://www.doutula.com)python

一、打開網站,點擊最新套圖網絡

二、以後咱們能夠看到沒有套圖,咱們須要提取每一個套圖的鏈接框架

三、獲取鏈接以後,進入頁面提取圖片就行了scrapy

四、咱們能夠發現該網站還穿插有廣告,咱們須要過濾點廣告學習

2、實戰網站

關於新建項目咱們就再也不多說了。不知道的能夠看看這篇文章:scrapy的基本使用加密

一、首先咱們提取第一頁的urlurl

 

經過上圖咱們能夠發現咱們想要的url全在class名爲col-sm-9的div下,調試

紅色框的部分爲廣告。不是a標籤,因此咱們就不用過濾了。咱們直接選取col-sm-9下的直接子節點便可

寫下以下代碼:

 

值得注意的是在settings.py中須要添加頭信息和將robots.txt協議修改成False

 

咱們打上斷點調試一下:

 

咱們發現咱們想要的信息已經提取出來了。

注意:在Request中的mate參數,是用來傳遞參數的,傳遞給下一個方法使用。使用方法和字典類似。

二、完善item

咱們只須要三個字段,什麼系列,圖片url,圖片名稱。

 

三、提取item中咱們須要的字段

 

四、下一頁

 

五、保存

由於對scrapy保存圖片沒有研究,因此就本身寫保存圖片的方法。

在pipelines.py種添加以下代碼:

 

而且在settings.py中添加:

 

六、運行

直接報錯,因此咱們在settings.py添加頭信息

運行一段時候後又報錯了,看來須要隨機更換表頭信息。

這裏咱們使用第三方庫很方便,pip3 install fake_useragent

安裝成功後咱們在middlewares.py中導入:from fake_useragent import UserAgent

添加以下代碼:

 

在settings.py文件中添加

 

運行main文件:

 

便可。

小結:

效果圖:

 

 

問題:

在運行過程當中遇到了四個問題:

一、沒有獲取大到圖片鏈接:

可能這個網站有兩個版本獲取的css方式不同。

解決方法:可使用xpath中的|(或)來解決

二、沒有獲取到圖片名稱

解決方法:同上

三、圖片名稱相同

解決方法:可使用md5加密後添加,你也可使用你本身的方法

四、在圖片名中含有?/\等非法字符

解決方法:能夠經過正則過濾,若是md5加密,那麼一下解決兩個問題。

雖然有些圖片沒有獲取到,可是仍是爬取了不少。有興趣的能夠嘗試去修改。

注意:不少人學Python過程當中會遇到各類煩惱問題,沒有人幫答疑。爲此小編建了個Python全棧免費答疑交流.裙 :一久武其而而流一思(數字的諧音)轉換下能夠找到了,不懂的問題有老司機解決裏面還有最新Python教程項目可拿,,一塊兒相互監督共同進步!本文的文字及圖片來源於網絡加上本身的想法,僅供學習、交流使用,不具備任何商業用途,版權歸原做者全部,若有問題請及時聯繫咱們以做處理。

相關文章
相關標籤/搜索