Scrapy中如何獲取下一頁鏈接


Scrapy從開始鏈接抓取數據,然后通過下一頁鏈接不停的抓取更多的數據。

那么如何獲取下一頁鏈接呢,常見有兩種方式:

1、通過當前頁面的“下一頁”鏈接獲取,例如:

<div class=zw_page1>
下一篇:<a href="../../JokeHtml/bxnn/2017122722221351.htm">爆逗二貨,醉人的笑容你會有</a>
</div> 

此時獲取的鏈接一般是相對url,需要將相對url轉為絕對url,方法如下:

# 獲取下一篇鏈接
nexthref = response.xpath('//div[@class="zw_page1"]/a/@href').extract_first()
if nexthref is not None:
    # 將相對url轉為絕對url
    nexthref = response.urljoin(nexthref)

 

2、抓取數據的url有一定的規律,例如:

http://www.haha365.com/joke/index_1.htm

http://www.haha365.com/joke/index_2.htm

......

http://www.haha365.com/joke/index_1022.htm

此時可以通過自定義生成url的方式獲取下一頁url,方法如下:

# 獲取下一篇鏈接
s1 = re.search(r'index_[0-9]+', response.url, re.S)
s2 = re.search(r'[0-9]+', s1.group(), re.S)
i = int(s2.group()) + 1
nexthref = "http://www.haha365.com/joke/index_"+str(i)+".htm"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM