我正在处理分页。我如何从下面的HTML选择器中获取href值?我不能使用**//a[@data-page-number ='2']/@href**,因为在每一页之后2会变成3。
<a data-page-number="2" data-offset="30" href="/Restaurants-g297633-oa30-Kochi_Cochin_Ernakulam_District_Kerala.html#EATERY_LIST_CONTENTS" class="nav next rndBtn ui_button primary taLnk" onclick=" require('common/Radio')('restaurant-filters').emit('paginate', this.getAttribute('data-offset'));; ta.trackEventOnPage('STANDARD_PAGINATION', 'next', '2', 0); return false;
">
Next
</a>
3条答案
按热度按时间zzoitvuj1#
您想要取得
next
按钮的href
属性。正如您所看到的,它在
onclick
属性中有next
值,因此我们可以使用它来过滤所有其他a
标签。Scrapy shell示例:
zpf6vheq2#
//*[@class="unified pagination js_pageLinks"]/a
同时选择了上一页和下一页的url,所以通过切片,你必须得到下一页的url。当然,当您选择元素时,请使用JavaScript,否则它会将静态元素与动态元素混合并匹配。
用于分页的完整工作代码:
输出:
yzckvree3#
您可以使用
这将定位带有
data-page-number
属性的a
标签元素。我猜这应该是唯一的定位符。UPD
您使用了错误的验证工具。
xpather.com是更好的XPath表达式验证工具。