更新時間:2017-11-16 來源:黑馬程序員 瀏覽量:
接下來我們要講解爬取一些較難的數(shù)據評論:
1. 在Item中定義自己要抓取的數(shù)據:
movie_name就像是字典中的“鍵”,爬到的數(shù)據就像似字典中的“值”。在繼承了BaseSpider的類中會用到:
第一行就是上面那個圖中的TutorialItem這個類,紅框圈出來的就是上圖中的movie_name中。
2、然后在spiders目錄下編輯Spider.py那個文件
跟著上面的item是匹配的
3.編輯pipelines.py文件,可以通過它將保存在TutorialItem中的內容寫入到數(shù)據庫或者文件中。
對json模塊的方法的注釋:dump和dumps(從Python生成JSON),load和loads(解析JSON成Python的數(shù)據類型);dump和dumps的唯一區(qū)別是dump會生成一個類文件對象,dumps會生成字符串,同理load和loads分別解析類文件對象和字符串格式的JSON
4. 上述三個過程后就可以爬蟲了,僅需上述三個過程喲,然后在dos中將目錄切換到tutorial下輸入scrapy crawl douban就可以爬啦
接下來就簡單介紹下一些基本知識
5. start_requests方法:
直接在start_urls中存入我們要爬蟲的網頁鏈接,但是如果我們要爬蟲的鏈接很多,而且是有一定規(guī)律的,我們就需要重寫這個方法了,可見它就是從start_urls中讀取鏈接,然后使用make_requests_from_url生成Request。
那么這就意味我們可以在start_requests方法中根據我們自己的需求往start_urls中寫入我們自定義的規(guī)律的鏈接。
6. parse方法:
生成了請求后,scrapy會幫我們處理Request請求,然后獲得請求的url的網站的響應response,parse就可以用來處理response的內容。在我們繼承的類中重寫parse方法,parse_item是我們自定義的方法,用來處理新連接的request后獲得的response
7. 在這個函數(shù)體中,根據 start_requests (默認為GET請求)返的 Response,得到了一個 名字為‘item_urls’ 的url集合。然后遍歷并請求這些集合。再看 Request 源碼
本文版權歸黑馬程序員人工智能+Python學院所有,歡迎轉載,轉載請注明作者出處。謝謝!
作者:黑馬程序員人工智能+Python培訓學院
首發(fā):http://python.itheima.com/