9.5 Scrapy項目管道爬取58實戰代碼

spider文件:
yield函數 ,這個函數沒有結束,還可以繼續返回,這裏千萬不能return,return就結束了1條數據。
這才yield出去到管道,才管道開始了。
yield item是yield到管道,yield request是yield到調度器。
管道文件pipline.py文件
天生有一個管道,但是這個管道里面什麼都沒有。之前講過管道有4個函數。
首先打開一個文件,print(打開文件了)關閉一個,print(關閉文件了),中間是管道

問題來了如何寫入文件:
如何把一個個對象寫入文件。涉及到序列化,即把對象變成一個文本。如何把dictionary寫入到文本中呢?經典方案是import jaon,把它變成一個json的字符串,然後存起來就ok了。
即:序列號函數json.dumps(),item其實就是一個dictionaty,但是離真正還是差一點。
於是json.dumps(dic(item)讓其變成真正的dic,並把其放入line變量中,即line=json.dumps(dic(item)。

這其中有個問題,容易寫成一坨,就是你不斷地這麼寫只是在尾部追加,沒有換行符,
這時候我們要添加一個換行的機制,並把其format粘貼進來
然後再寫到文件裏面


激活管道,在setting文件中
解封即把紅框的註釋去掉,注意改變管道的順序補上改前邊的文件名,而是改動後邊的數字300

讓其執行奔跑
手動創建main文件,並且把執行命令寫進去,其中有個是文件名,然後debug運行即可。


課後作業:
  • 選4種選擇器中的一種對其高級語法學習
  • 學習和掌握正則表達式的用法
  • 嘗試使用高級語法解析一些頁面
補充資料:
介紹了四種選擇器,其中正則表達式是必須學習的,其它三種只需挑一種自己喜歡的進行學習並且精通就好。注意一定要通過實際的網站多加練習如何提取到自己想要的數據
  • CSS、Xpath和正則表達式:可以前往選擇器(Selectors),學習更加全面的選擇器用法
  • 正則表達式:正則表達式是程序猿的必備技能,不僅在scrapy中可以用到,清洗數據、SQL數據庫提取數據等都可以用到,所以一定要多加學習:正則表達式
  • 谷歌瀏覽器具有一款拓展插件叫“XPath Helper”,可以在瀏覽器頁面直接寫Xpath query,即時顯示所寫的Xpath選擇到的結果,非常好用,可以自行下載

提取碼 mtut
下載好,打開chrome://extensions/
然後把插件拖進去,重啓下瀏覽器就可以用了,快捷打開插件方式shift+ctrl+X
補充資料
  • 有能力的同學可以去GitHub瀏覽Scrapy的源碼,更深入地理解Scrapy的使用和操作方法
  • 有興趣的同學可以嘗試去爬取京東的商品,這裏有一個京東爬蟲開源的項目,大家可以參考一下
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章