2017-10-09 43 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解析器。然後你可以使用正則表達式來找到想要的元素。