1. 程式人生 > >Scrapy爬蟲小demo總結

Scrapy爬蟲小demo總結

訪問 情況 需要 line 架構 方法 pid 說著 ()

一、 Scrapy入坑。

a) Scrapy的安裝。

這個沒什麽可講的,網上一大把。

註意的問題,可能我下載的是32位的python,出現了pywin32沒法用的情況,這個直接pip install pypiwin32 就好。

b) 安裝驗證。

scrapy genspider baidu www.baidu.com 建立一個爬百度的爬蟲。

scrapy crawl baidu

成功爬取數據。

c) Scrapy項目創建:

首先進入要創建項目的目錄:cd xxx

然後進行創建:scrapy startproject demo1(項目名字是demo1)

進入項目目錄,進行抓取目標的設置:cd demo1;

scrapy genspider demo1demo quotes.toscrape.com

上面的兩步設置好了之後,就有如下結構:

然後我使用的pycharm編譯器,,,在命令行。這裏

輸入命令進行爬取,

註意,,,我在生成的文件中使用了中文註釋,然後就報編碼錯誤,所以文件匯總得保證英文環境。

二、 Scrapy基本使用

經過如上的折騰,scrapy總算是可以大概跑起來了,接下來我們來看看怎麽使用(emmmm,說實話我也用的不好,說個大概吧,就是記錄下這個磨人的小demo)。

好,我們從使用的第一步說起,首先,設置爬取網址:

(打碼真好看,^_<)

然後就是函數回調,scrapy.Request()方法,這個方法就是scrapy爬蟲的核心,第一個參數是訪問的url,第二個是回調函數,就是訪問後返回了信息就會調用的函數,這個函數需要自己寫,隨便寫一個,但是參數必須有response,那個這個函數裏面就可以使用這個response了,這個response就是返回的響應,可以打印respons.text,得到的結果就是網頁的數據,於是,我們要做的就是解析這個網頁數據。那麽這個網頁數據怎麽解析呢?好了,看看圖吧,說著太抽象了。

如上,這些方法透過dom樹來解析,然解析完了,拿到相應的連接可以繼續爬。誒呀,這個部分也就沒什麽說的了。

三、 Scrapy文件說明。

這就是整個scrapy的文件,init不說(說不好,自己菜)那麽middlewares是什麽?是中間件,在裏面寫一些中間調用的類,這個我不做強行解釋,畢竟我就懂個大概,出問題我也不會調。Pipelines這個呢是用來寫數據庫什麽的,最後一個settings,一看就知道是設置,比如設置延遲,可以在裏面寫,當然有些常量也可以在裏面寫,

看清楚了,頭也要在裏面寫,請求頭。,emmmm就這些。

四、 Scrapy的使用註意。(就是我該註意的,跟其他人沒關系,畢竟我是新手)

對了這個爬蟲我是在教程裏面抄的,自己根據需求做了小小的修改,也就大概懂,呸,大概都沒有。教程裏面是通過什麽維護了一個cookie池,買了幾百個小號輪流抓,我就沒有那麽有錢,沒買小號,所以,我就一個cookie,但是也得模仿別人去cookie池子裏面拿,不然跑不起我還不會解,於是我就用springboot(這是java的一個微服務架構)搭了個簡單的服務器,然後我每次請求這個服務器就返回一個cookie的json串給我,那麽我就可以肆無忌憚的使用他了。一個cookie我抓了200個數據就被封Ip了,好尷尬呀,為了做一個文明了爬蟲,我設置了延遲,這樣沒有被封號,真是驚險呀,time.sleep(),線程睡眠。

五、 爬取數據處理。

這個沒必要說的,不是scrapy,因為是一個demo,所以就在這裏記錄下,我爬的時候使用.json文件保存,因為json最整齊,沒有亂碼,我很喜歡。

那麽對於json文件的處理,那就簡單了,直接讀,然後使用字典類型算了截個小圖把,廢話就不說了

嗯嗯,然後就可以了,真是勞累的幾天呀。

Scrapy爬蟲小demo總結