Kimono 用于没有 next> 的分页的 XPath

Kimono XPath for pagination without next>

不明白如何为 kimono 在导航中没有 next> 的抓取进行分页,即对于分页结构:

<div class="pages" style="clear: both;">
    <span>1</span>    
    <a href="/page=2">2</a>
    <a href="/page=3">3</a>
    <a href="/page=4">4</a>
</div>

xpath for css 选择器仅给出第 2 页的结果:

div.pages > a

我想要一个 API(即不想生成带有附加 API 的 URL 列表)

你有两个选择。

(a) 尝试 div.pages > span + a。此 'next page' select 或将始终 select 'next' 页面并将停在最后一页。示例标记显示当前 select 页是 span,下一页 link 是相邻的 a。您可以使用 adjacent sibling selector + 到 select a span 之后的 a。注意:您没有 link 到目标站点,因此不能保证这会起作用,但根据您的示例标记,它会起作用。

(b) manually enter a list of URLs API 抓取简单。看起来您想要的列表是:

http://www.thissiteurl.com/page=1
http://www.thissiteurl.com/page=2
http://www.thissiteurl.com/page=3
...

下面你会发现XPathCSSselect或到select所有a 用于分页的元素:

  • XPath: //descendant::*[1]/a[contains(@href, 'page=')]

  • CSS select或: div[id=results] div[class~=pull-right] a

div[class~=pull-right] 表示您想要 select 所有 divsclass 属性等于 pull-right

我不太喜欢 CSS select 或者,但是 Kimono 出于某种原因不允许 a[href] 类型的 selection。理想情况下,你会使用这样的东西:

  • 更好CSSselect或div[id=results] a[href=~page]