Scrapy爬蟲小demo總結
一、 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總結