1. 程式人生 > >9.5 Scrapy專案管道爬取58實戰程式碼

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的使用和操作方法
  • 有興趣的同學可以嘗試去爬取京東的商品,這裡有一個京東爬蟲開源的專案,大家可以參考一下