Scrapy爬蟲小demo總結

1、 Scrapy入坑。java

a)       Scrapy的安裝。python

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

 

       注意的問題,可能我下載的是32位的python,出現了pywin32無法用的狀況,這個直接pip install pypiwin32 就好。數據庫

b)       安裝驗證。json

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

 

scrapy crawl baidu服務器

 

成功爬取數據。cookie

c)        Scrapy項目建立:架構

首先進入要建立項目的目錄:cd xxxdom

而後進行建立:scrapy startproject demo1(項目名字是demo1)

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

                                                 scrapy genspider demo1demo quotes.toscrape.com

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

 

 

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

 

輸入命令進行爬取,

 

 

注意,,,我在生成的文件中使用了中文註釋,而後就報編碼錯誤,因此文件彙總得保證英文環境。

2、 Scrapy基本使用

通過如上的折騰,scrapy總算是能夠大概跑起來了,接下來咱們來看看怎麼使用(emmmm,說實話我也用的很差,說個大概吧,就是記錄下這個磨人的小demo)。

       好,咱們從使用的第一步提及,首先,設置爬取網址:

 

(打碼真好看,^_<)

而後就是函數回調,scrapy.Request()方法,這個方法就是scrapy爬蟲的核心,第一個參數是訪問的url,第二個是回調函數,就是訪問後返回了信息就會調用的函數,這個函數須要本身寫,隨便寫一個,可是參數必須有response,那個這個函數裏面就能夠使用這個response了,這個response就是返回的響應,能夠打印respons.text,獲得的結果就是網頁的數據,因而,咱們要作的就是解析這個網頁數據。那麼這個網頁數據怎麼解析呢?好了,看看圖吧,說着太抽象了。

 

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

3、 Scrapy文件說明。

 

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

 

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

 

4、 Scrapy的使用注意。(就是我該注意的,跟其餘人不要緊,畢竟我是新手)

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

5、 爬取數據處理。

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

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

 

嗯嗯,而後就能夠了,真是勞累的幾天呀。

相關文章
相關標籤/搜索