2017-02-24 57 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