2017-02-24 52 views
0

我正在尝试编写一个XPATH表达式来查找此页面上的下一页URL 元素以导航到下一页。Xpath表达式浏览到下一页

它看起来像如下,其中1,2,3,...,n和 '更多' 导航第1页

| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |更多

网页源代码如下:

<table><tr><td><br /> 

     <p>Page <a href='browse.html?&id=0&count=0'>1</a> |&nbsp;<a href='browse.html?&id=0&count=20'>2</a> |&nbsp;<a href='browse.html?&id=0&count=40'>3</a> |&nbsp;<a href='browse.html?&id=0&count=60'><strong>4</strong></a> |&nbsp;<a href='browse.html?&id=0&count=80'>5</a> |&nbsp;<a href='browse.html?&id=0&count=100'>6</a> |&nbsp;<a href='browse.html?&id=0&count=120'>7</a> |&nbsp;<a href='browse.html?&id=0&count=140'>8</a> |&nbsp;<a href='browse.html?&id=0&count=160'>9</a> |&nbsp;<a href='browse.html?&id=0&count=180'>10</a> |&nbsp;<a href='browse.html?&id=0&count=200'>More</a> </p> 

</td></tr></table> 

我试着写一些,但无济于事:

//台/ TBODY/TR/TD /台/ TBODY/TR/TD/p

// TD/p

任何建议,将不胜感激,谢谢

回答

1

˚F首先,分页或甚至访问任何级别的网站,完全取决于每个网站。所以没有一种通用的方法来分类任何网站,使用任何工具。

现在,谈论这个特定的情况,它看起来像网站分页只取决于count url变量,所以你可以很容易地模拟分页只需一个计数器,不需要使用xpath或获取HTML的任何部分:

  • browse.html?&id=0&count=0count=(0*1) + 20
  • browse.html?&id=0&count=20count=(1*1) + 20
  • browse.html?&id=0&count=40count=(2*1) + 20
  • ...

如果需要的XPath,应返回所有链接:

//a/@href 

如果你想索引使用XPath迭代,它也可以用做:

  • //a[1]/@href
  • //a[2]/@href
  • ...
+0

我注意到它是简单的伪代码来枚举页面,但我特别要求它在xpath中,但不知道如何翻译。我现在拥有的是:// p/a/following-sibling :: a [1],它检索正确的元素,但是如何使用xpath枚举?即n + 1,其中n是循环的?即// p/a/following-sibling :: a [(n * 1)+20] – 151SoBad

+0

好的,请检查更新的答案 – eLRuLL

+0

,这是有道理的。然而,有没有一种方法可以用一行代码在xpath中迭代?尝试搜索,但无济于事,只有结果是使用位置(),即// a [位置()> = 1和位置()<= 20]/@ href,但这不会提取任何信息 – 151SoBad