2017-01-23 21 views
0

申し訳ありませんが、おそらく以前に尋ねられましたが、スタック/検索エンジンから回答が見つからないようです。テーブル内でhrefを取得

テーブルからデータを削り取ろうとしていますが、必要なhrefリンクがあります。 HTMLとして、以下:

<table class="featprop results"> 
<tr> 
**1)**<td class="propname" colspan="2"><a href="/lettings-search-results?task=View&amp;itemid=136" rel="nofollow"> West Drayton</a></td> 
</tr> 
<tr><td class="propimg" colspan="2"> 

    <div class="imgcrop"> 
    **2)**<a href="/lettings-search-results?task=View&amp;itemid=136" rel="nofollow"><img src="content/images/1/1/641/w296/858.jpg" alt=" Ashford" width="148"/></a> 


    <div class="let">&nbsp;</div> 
    </div> 
</td></tr> 

<tr><td class="proprooms"> 

をこれまでのところ、私は次のように使用しています

上記のhtmlに1と2の両方を返し
for table in soup.findAll('table', {'class': 'featprop results'}): 
    for tr in table.findAll('tr'): 
     for a in tr.findAll('a'): 
      print(a) 

、誰も私がちょうどhrefのリンクを取り除く助けることができますか?

+1

何 '[ 'のhref']'について:

result = soup.select(".featprop a"); for a in result: print(a['href']) 

はあなたに以下の結果を与えますか? –

答えて

1
for table in soup.findAll('table', {'class': 'featprop results'}): 
    for tr in table.findAll('tr'): 
     for a in tr.findAll('a'): 
      print(a['href']) 

アウト:

/lettings-search-results?task=View&itemid=136 
/lettings-search-results?task=View&itemid=136 

Attributes

EDIT:

links = set() # set will remove the dupilcate 
for a in tr.findAll('a', href=re.compile(r'^/lettings-search-results?')): 
    links.add(a['href']) 

regular expression

+0

ありがとうございます!これはうまくいきますが、私は望んでいないリンクを探していますが、 '/ lettings-search-results?'で始まるリンクのみを返すことは可能ですか? – Maverick

+0

これは機能しましたが、各リンクのうち3つが返されました。だから私は重複を取り除くために作業する必要があります。ありがとうございました! – Maverick

+1

@Maverickはすべてのリンクをset()に入れ、重複を取り除きます。 –

1

は、これは、あなたのelem下のタグの配列を提供選択されたクラス名の。

/lettings-search-results?task=View&itemid=136 
/lettings-search-results?task=View&itemid=136 
関連する問題