您好,登錄后才能下訂單哦!
小編給大家分享一下python爬蟲時(shí)提取數(shù)據(jù)后跟蹤到下一個(gè)鏈接報(bào)錯(cuò)怎么辦,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
解決方法:不要將“NoneType”連接到 str。這意味著該next_page變量沒有從response.xpath().get()上一行函數(shù)中提到的 xpath 中獲取任何值。沒有匹配的 xpath,因此get()返回None。
示例:
正在嘗試制作一個(gè)爬蟲,它可以從 SCP wiki 中獲取信息并跟蹤下一個(gè) SCP 的鏈接并繼續(xù)像這樣。使用當(dāng)前的代碼,從第一個(gè)跟蹤鏈接中提取數(shù)據(jù)后,爬蟲停止跟蹤到下一個(gè)鏈接。
import scrapyclass QuotesSpider(scrapy.Spider): name = "scp" start_urls = [ 'https://scp-wiki.wikidot.com/scp-002', ] def parse(self, response): for scp in response.xpath('//*[@id="main-content"]'): yield { 'title': scp.xpath('//*[@id="page-content"]/p[1]').get(), 'tags': scp.xpath('//*[@id="main-content"]/div[4]').get(), 'class': scp.xpath('//*[@id="page-content"]/p[2]').get(), 'scp': scp.xpath('//*[@id="page-content"]/p[3]').get(), 'desc': scp.xpath('//*[@id="page-content"]/p[6]').get(), } next_page = response.xpath('//*[@id="page-content"]/div[3]/div/p/a[2]/@href').get() next_page = 'https://scp-wiki.wikidot.com'+next_page print(next_page) next_page = response.urljoin(next_page) print(next_page) yield response.follow(next_page, callback=self.parse)
當(dāng)我運(yùn)行這個(gè)代碼時(shí),收到了以下錯(cuò)誤:
next_page = ' TypeError: can only concatenate str (not "NoneType") to str
當(dāng)出現(xiàn)以上錯(cuò)誤時(shí),可以使用本文開頭提到的解決方法進(jìn)行處理。
以上是“python爬蟲時(shí)提取數(shù)據(jù)后跟蹤到下一個(gè)鏈接報(bào)錯(cuò)怎么辦”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。