<article class="editor-area">
spider文件:
yield函數(shù) 意述,這個函數(shù)沒有結(jié)束,還可以繼續(xù)返回端圈,這里千萬不能return宴倍,return就結(jié)束了1條數(shù)據(jù)恭理。
這才yield出去到管道,才管道開始了寨腔。
yield item是yield到管道家卖,yield request是yield到調(diào)度器。
管道文件pipline.py文件
天生有一個管道榛臼,但是這個管道里面什么都沒有伊佃。之前講過管道有4個函數(shù)。
首先打開一個文件沛善,print(打開文件了)關閉一個航揉,print(關閉文件了),中間是管道
問題來了如何寫入文件:
如何把一個個對象寫入文件金刁。涉及到序列化帅涂,即把對象變成一個文本。如何把dictionary寫入到文本中呢尤蛮?經(jīng)典方案是import jaon媳友,把它變成一個json的字符串,然后存起來就ok了产捞。
即:序列號函數(shù)json.dumps(),item其實就是一個dictionaty醇锚,但是離真正還是差一點。
于是json.dumps(dic(item)讓其變成真正的dic坯临,并把其放入line變量中焊唬,即line=json.dumps(dic(item)。
這其中有個問題看靠,容易寫成一坨赶促,就是你不斷地這么寫只是在尾部追加,沒有換行符挟炬,
這時候我們要添加一個換行的機制鸥滨,并把其format粘貼進來
然后再寫到文件里面
激活管道,在setting文件中
解封即把紅框的注釋去掉谤祖,注意改變管道的順序補上改前邊的文件名婿滓,而是改動后邊的數(shù)字300
讓其執(zhí)行奔跑
手動創(chuàng)建main文件,并且把執(zhí)行命令寫進去粥喜,其中有個是文件名空幻,然后debug運行即可。
課后作業(yè):
- 選4種選擇器中的一種對其高級語法學習
- 學習和掌握正則表達式的用法
- 嘗試使用高級語法解析一些頁面
補充資料:
介紹了四種選擇器容客,其中正則表達式是必須學習的秕铛,其它三種只需挑一種自己喜歡的進行學習并且精通就好。注意一定要通過實際的網(wǎng)站多加練習如何提取到自己想要的數(shù)據(jù)
- CSS缩挑、Xpath和正則表達式:可以前往選擇器(Selectors)但两,學習更加全面的選擇器用法
- 正則表達式:正則表達式是程序猿的必備技能,不僅在scrapy中可以用到供置,清洗數(shù)據(jù)谨湘、SQL數(shù)據(jù)庫提取數(shù)據(jù)等都可以用到,所以一定要多加學習:正則表達式
- 谷歌瀏覽器具有一款拓展插件叫“XPath Helper”芥丧,可以在瀏覽器頁面直接寫Xpath query紧阔,即時顯示所寫的Xpath選擇到的結(jié)果,非常好用续担,可以自行下載
XPath Helper下載:https://pan.baidu.com/s/1c2vYUOw
提取碼 mtut
下載好擅耽,打開chrome://extensions/
然后把插件拖進去,重啟下瀏覽器就可以用了物遇,快捷打開插件方式shift+ctrl+X
補充資料
</article>