python+scrapy爬蟲時如何自動翻頁獲取內(nèi)容

自動翻頁分為兩種情況:此處所舉例子有一定的時效性,請具體情況具體分析,方法類似

(1)一種是像我之前爬蟲新京報網(wǎng)的新聞,下一頁的url可以通過審查元素獲得,第一頁的網(wǎng)址是http://www.bjnews.com.cn/news/list-43-page-1.html
在第一頁的時候,下一頁按鈕的審查元素是

我們通過獲取next_pages = response.xpath('//div[@id="page"]/a[@class="next"]/@href').extract()[0]
,便可以得到下一頁的url,next_page = "http://www.bjnews.com.cn" + next_pages,

這一部分的完整代碼為:

page_link=set() #保存下一頁頁面url

content_link=set() #保存頁面內(nèi)所有可獲得的url

rules={'page':LinkExtractor(allow=(r'^http://www.bjnews.com.cn/\w+/2016/\d{2}/\d{2}/\d{6}.html
))}

start_urls={'http://www.bjnews.com.cn/news/list-43-page-1.html'}

def parse(self, response):

#爬取一個頁面內(nèi)的所有url鏈接

??? for link in self.rules['page'].extract_links(response):

??????? if link.url not in self.content_link:

??????????? self.page_link.add(link.url)

??????????? yield scrapy.Request(link.url, callback=self.parse_item)

#自動獲取下一頁的url

??? next_pages = response.xpath('//div[@id="page"]/a[@class="next"]/@href').extract()[0]

??? if next_pages:

??????? next_page = "http://www.bjnews.com.cn" + next_pages

??????? self.page_link.add(next_page)

??????? yield scrapy.Request(next_page, callback=self.parse)


(2)第二種情況,就是在下一頁的審查元素中沒有提供url鏈接,需要自己分析,在這里依然舉個例子,比如搜狐新聞http://news.sohu.com/guojixinwen.shtml,該頁中下一頁按鈕的審查元素是:


我們不能通過href來直接過得下一頁的url,需要自己手動獲得,那現(xiàn)在我們來分析

第二頁的url:http://news.sohu.com/guojixinwen_5230.shtml,第三頁的http://news.sohu.com/guojixinwen_5229.shtml,最后一頁的http://news.sohu.com/guojixinwen_5132.shtml,由此可以分析出這一共100頁的url,是http://news.sohu.com/guoneixinwen_"+i+".shtml",其中i是從5230到5132倒序排列的,也就是說通過for循環(huán),就可以獲得這100頁的所有url,完整代碼如下:在這里給大家加一個新的方法的使用start_request,該方法就是子定義start_urls,把所有自定義的url放到page_link中,self.make_requests_from_url方法會自動獲取里面的請求

page_link = set()

content_link=set()

rules = {'page':LinkExtractor(allow=(r'^http://news.sohu.com/\d{8}/\w+.shtml
))

def start_requests(self):

for i in range(5230, 5133)[::-1]:

url = "http://news.sohu.com/guoneixinwen_"+str(i)+".shtml"

self.page_link.add(url)

for url in self.page_link:

yield self.make_requests_from_url(url)

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • “貴族學(xué)?!辈粌H僅是“貴”而已_慧聚成長_新浪博客 http://blog.sina.com.cn/s/blog_...
    思文_cb94閱讀 786評論 0 3
  • 爬蟲初探-Scrapy Scrapy 資料 官方文檔永遠(yuǎn)是首選,建議把 tutorial 完整的過一遍。 網(wǎng)址:h...
    廖少少閱讀 2,231評論 0 3
  • 看著你們近來的照片 突然想起去年的這個時候 還陪伴在身邊的人和自己 突然很想寫一些很久沒寫的字 離開學(xué)校三年了吧,...
    小細(xì)娘閱讀 260評論 0 0
  • “土豆,也太老土了吧?換個洋氣點(diǎn)的名字?!睙嵝牡呐笥芽倳@么說。 可是你知道嗎?土豆曾經(jīng)是我幼年時能夠下咽的兩種蔬...
    一念清寧閱讀 4,243評論 17 14
  • 人都會不再年輕吧,不敢熬夜,隨時打盹,頭發(fā)稀疏,連食量都下降得厲害,干瞪眼連一碗面條都吃不下去了,這可是兩樣切條...
    咸吃蘿卜閱讀 478評論 0 0

友情鏈接更多精彩內(nèi)容