[英]XPath to find all links with just numbers in them?
我在頁面中選擇了具有我想要的頁面鏈接的元素。 它們有點像<a href="blah">1</a>
。 我想在xpath中使用正則表達式,這樣我就可以獲得所有類似的鏈接,其文本為\\d+
。
我看到這里有一個答案: 如何在lxml xpath中使用正則表達式? 但我無法理解它。
更具體地說,“請注意,您需要提供命名空間映射,以便它知道xpath表達式中的”re“前綴代表什么。”
以下是清理頁面的代碼: <div class="pagination"> <b>1</b> <a href="?page=post&s=list&tags=tag2+tag1&pid=25">2</a><a href="?page=post&s=list&tags=tag2+tag1&pid=50">3</a><a href="?page=post&s=list&tags=tag2+tag1&pid=75">4</a><a href="?page=post&s=list&tags=tag2+tag1&pid=100">5</a><a href="?page=post&s=list&tags=tag2+tag1&pid=125">6</a><a href="?page=post&s=list&tags=tag2+tag1&pid=150">7</a><a href="?page=post&s=list&tags=tag2+tag1&pid=175">8</a><a href="?page=post&s=list&tags=tag2+tag1&pid=200">9</a><a href="?page=post&s=list&tags=tag2+tag1&pid=225">10</a><a href="?page=post&s=list&tags=tag2+tag1&pid=250">11</a><a href="?page=post&s=list&tags=tag2+tag1&pid=25" alt="next">›</a><a href="?page=post&s=list&tags=tag2+tag1&pid=325" alt="last page">»</a><br><br><br><br><iframe hspace="0" vspace="0" border="0" marginheight="0" marginwidth="0" allowtransparency="true" src="http://notrelevant.com" frameborder="0" height="98" scrolling="no" width="736"></iframe></div>
<div class="pagination"> <b>1</b> <a href="?page=post&s=list&tags=tag2+tag1&pid=25">2</a><a href="?page=post&s=list&tags=tag2+tag1&pid=50">3</a><a href="?page=post&s=list&tags=tag2+tag1&pid=75">4</a><a href="?page=post&s=list&tags=tag2+tag1&pid=100">5</a><a href="?page=post&s=list&tags=tag2+tag1&pid=125">6</a><a href="?page=post&s=list&tags=tag2+tag1&pid=150">7</a><a href="?page=post&s=list&tags=tag2+tag1&pid=175">8</a><a href="?page=post&s=list&tags=tag2+tag1&pid=200">9</a><a href="?page=post&s=list&tags=tag2+tag1&pid=225">10</a><a href="?page=post&s=list&tags=tag2+tag1&pid=250">11</a><a href="?page=post&s=list&tags=tag2+tag1&pid=25" alt="next">›</a><a href="?page=post&s=list&tags=tag2+tag1&pid=325" alt="last page">»</a><br><br><br><br><iframe hspace="0" vspace="0" border="0" marginheight="0" marginwidth="0" allowtransparency="true" src="http://notrelevant.com" frameborder="0" height="98" scrolling="no" width="736"></iframe></div>
我的代碼到目前為止:
answer = browser.open(address)
tree = lxml.html.parse(answer)
numbers = tree.xpath("//div[contains(@class, 'pagination')]")[0]
此XPath表達式不需要RegExp:
//div[
contains(
concat(' ',@class,' '),
' pagination '
)
]/a[
floor()=.
]
XPath不提供匹配正則表達式的方法。
您鏈接的帖子中使用的擴展名應該允許以下工作:
//div[contains(@class, 'pagination')]/a[re:match(text(), '^\d+$')]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.