2017-10-09 142 views
-1

以下是链接列表。正则表达式提取链接中的数字

<a class="table-link" href="/tasks/document/new">Should review 
</a></td> 
<a class="table-link" href="/tasks/document/58324">Should review 
</a></td> 
<td> 
<a class="table-link" href="/tasks/document/58325">AFCO certificate 
</a></td> 
<td> 
<a class="table-link" href="/tasks/document/58325">Document Task 
</a></td> 
<td> 
<a class="table-link" href="/tasks/document/58326">Pending 
</a></td> 
<td> 
<a class="table-link" href="/tasks/document/58327">Cami ltd 
</a></td> 
<td> 
<a class="table-link" href="/tasks/document/58328">29 Sep 14:57 

我想提取终止于数字和含/tasks/document这些链接。输出应该如下:

<a class="table-link" href="/tasks/document/58324"> 
    <a class="table-link" href="/tasks/document/58325"> 
    <a class="table-link" href="/tasks/document/58326"> 
    <a class="table-link" href="/tasks/document/58327"> 
    <a class="table-link" href="/tasks/document/58328"> 

我使用下面的代码driver.find_elements_by_css_selector("a[href*='/tasks/document/']")

如何修改它以只读数字?

+0

你的代码试图在哪里?请参阅:[我如何做X?](https://meta.stackoverflow.com/questions/253069/whats-the-appropriate-new-current-close-reason-for-how-do-i-dox )对SO的期望是,用户提出的问题不仅仅是研究来回答他们自己的问题,而且还分享研究,代码尝试和结果。这表明你已经花时间去尝试帮助自己,它使我们避免重申明显的答案,最重要的是它可以帮助你得到更具体和相关的答案!另见:[问] – JeffC

回答

1

这可以使用BeautifulSoup如下进行:

html = """  
<a class="table-link" href="/tasks/document/new">Should review</a></td> 
<a class="table-link" href="/tasks/document/58324">Should review/a></td> 
<td> 
<a class="table-link" href="/tasks/document/58325">AFCO certificate</a></td> 
<td> 
<a class="table-link" href="/tasks/document/58325">Document Task</a></td> 
<td> 
<a class="table-link" href="/tasks/document/58326">Pending</a></td> 
<td> 
<a class="table-link" href="/tasks/document/58327">Cami ltd</a></td> 
<td> 
<a class="table-link" href="/tasks/document/58328">29 Sep 14:57""" 

from bs4 import BeautifulSoup   
import re 

soup = BeautifulSoup(html, "html.parser") 

for a in soup.find_all('a', href=re.compile(r'\/tasks\/document\/\d+')): 
    print a 

这将显示:

<a class="table-link" href="/tasks/document/58324">Should review</a> 
<a class="table-link" href="/tasks/document/58325">AFCO certificate</a> 
<a class="table-link" href="/tasks/document/58325">Document Task</a> 
<a class="table-link" href="/tasks/document/58326">Pending</a> 
<a class="table-link" href="/tasks/document/58327">Cami ltd</a> 
<a class="table-link" href="/tasks/document/58328">29 Sep 14:57</a> 

如果你只需要实际href然后使用:

print a['href'] 

给你:

/tasks/document/58324 
/tasks/document/58325 
/tasks/document/58325 
/tasks/document/58326 
/tasks/document/58327 
/tasks/document/58328 
0

在硒中没有这样的选择。

如果您愿意,可以使用selenium获取源代码并将其提供给beautifulsoup解析器。然后你可以使用正则表达式来找到想要的元素。