簡體   English   中英

Scrapy Xpath獲得正確的分頁

[英]Scrapy Xpath getting the correct pagination

首先,如果您正在閱讀本文,則謝謝。

我花了一些時間來收集次要數據,但是我想獲取一些其他信息,但是卻陷入了分頁中。

我想獲取鏈接的data-href,但是它需要包含

我一直在使用[contains()],但是當我需要包含具有特定類的對象時,如何獲取數據-href

<li><a class="cursor" data-type="js" data-href="test"><i class="fa fa-chevron-right" aria-hidden="true"></i></a></li>

我一直在使用以下內容:

next_page_url = response.selector.xpath('//*[@class="text-center"]/ul/li/a[contains(@class,"cursor")]/@data-href').extract_first()

起作用但不適用於正確的數據href

非常感謝您的幫助

完整的源代碼:

<div class="pagination-container margin-bottom-20"> <div class="text-center"><ul class="pagination"><li><a class="cursor" data-type="js" data-href="/used-truck/1-32/truck-ads.html"><i class="fa fa-chevron-left" aria-hidden="true"></i></a></li><li><a href="/used-truck/1-32/truck-ads.html">1</a></li><li class="active"><a>2</a></li><li><a href="/used-truck/1-32/truck-ads.html?p=3">3</a></li><li class="hidden-xs no-link"><a>...</a></li><li class="hidden-xs"><a href="/used-truck/1-32/truck-ads.html?p=12">12</a></li><li class="hidden-xs no-link"><a>...</a></li><li class="hidden-xs"><a href="/used-truck/1-32/truck-ads.html?p=22">22</a></li><li><a class="cursor" data-type="js" data-href="/used-truck/1-32/truck-ads.html?p=3"><i class="fa fa-chevron-right" aria-hidden="true"></i></a></li></ul></div> </div> </div>

呵呵...原來是這么簡單的情況(:

當您應該提取最后一個項目以獲取下一頁時,您的錯誤是.extract_first()

next_page = response.xpath('//a[@class="cursor"]/@data-href').extract()[-1]

這將達到目的。 但我建議您從分頁列表中提取所有鏈接,因為scrapy正在管理重復爬網。 這將做得更好,並且出錯的機會更少:

pages = response.xpath('//ul[@class="pagination"]//a/@href').extract()
for url in pages:
    yield scrapy.Request(url=response.urljoin(url), callback=self.whatever)

等等..

試試看:

next_page_url = response.selector.xpath('//*[@class="text-center"]/ul/li/a[@class="cursor")]/@data-href').extract_first()

我建議您先確保您的元素存在於初始html中:

只需在Chrome中Ctrl+F Ctlr+U ,然后Ctrl+F即可查找元素。

如果可以在其中找到element-您的xpath選擇器出了點問題。 其他元素是由javascript生成的,您必須使用另一種方式來獲取數據。

PS。 您不應使用Chrome Devtools的“元素”標簽來檢查元素是否存在,因為該標簽包含已應用JS代碼的元素。 因此,僅檢查源代碼( ctrl+U

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM