2017-10-09 9 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-do-x )SOに関する期待は、質問をするユーザーが自分の質問に答えるだけでなく、その研究、コードの試行、結果を共有することです。これは、時間をかけて自分自身を助けようとしていることを示しています。明白な回答を繰り返さないようにしてくれています。そして、より具体的で適切な答えを得ることができます。参照:[ask] – 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

セレンにはこのようなオプションはありません。

必要に応じて、セレンを使用してソースコードを取得し、beautifulsoupパーサーにフィードすることができます。次に、regexpsを使って必要な要素を見つけることができます。

関連する問題