爬蟲的具體選擇根據(jù)需求情形的不同,總是容易被如何書寫復(fù)雜的標(biāo)簽解析困擾和措,我也深感其疼体谒,網(wǎng)上資料很零散瑣粹,較為空洞理論臼婆,所以領(lǐng)悟的一些小技巧抒痒,分享給大家。
基本知識(shí)點(diǎn)1
就豆瓣top250對(duì)電影名的爬取進(jìn)行詳解吧
標(biāo)簽結(jié)構(gòu)
核心代碼如下颁褂,我們對(duì)xpath表達(dá)式寫什么進(jìn)行探討
for quote in response.xpath('//div[@class="item"]'):
yield {"電影名": quote.xpath(??).extract()}
//div[@class="info"]/div/a/span[@class="title"]/text()
匹配了網(wǎng)頁中所有的div[@class="info"]故响,而這是打破了原有的循環(huán)。正確做法應(yīng)是去掉前面的“//”
div[@class="info"]//span/text()
在首路徑不用//后我們中途跳級(jí)路徑爬取發(fā)現(xiàn)可以找到經(jīng)篩選后的所有span元素內(nèi)容颁独,說明中途允許跳級(jí)
div[@class="info"]//span[@class="title"][1]/text()
下面正常爬取彩届,此時(shí)我們還可以通過將.extract()改為.extract()[1]或者.extract_first()來代替span[@class="title"][1]中[1]
span[@class="title"]/text()
此處嘗試跳級(jí)路徑,發(fā)現(xiàn)爬取不到
以上可小做總結(jié)
xpath路徑篩選之后再次篩選應(yīng)注意第二次篩選首路徑應(yīng)該是緊接著的不加//的路徑然后后面可以隨意誓酒,可以跳級(jí)