2016-12-20 20 views
3

私は、次のHTML DOMがありますBeautifulsoup - 特定のクラスのブロック内のすべてのリンクを取得するには?

<div class="meta-info meta-info-wide"> <div class="title">Разработчик</div> <div class="content contains-text-link"> 

<a class="dev-link" href="http://www.jourist.com&amp;sa=D&amp;usg=AFQjCNHiC-nLYHAJwNnvDyYhyoeB6n8YKg" rel="nofollow" target="_blank">Перейти на веб-сайт</a> 

<a class="dev-link" href="mailto:[email protected]" rel="nofollow" target="_blank">Написать: [email protected]</a> 

<div class="content physical-address">Diagonalstraße 41 
    20537 Hamburg</div> </div> </div> 

私はブロックdiv.meta-info-wide内部クラスdev-linkですべてのリンク(URL)を取得する必要があります。

私はこの明白な方法を試してみましたが、動作しません:

divTag = soup.find_all("div", {"class":"meta-info-wide"}) 
     print(len(divTag)) 

     for tag in divTag: 
      tdTags = tag.find_all("a", {"class":"dev-link"}) 
      for tag in tdTags: 
       print tag.text 
+0

コードは正常に動作します。私はpython3とbs4を使用します。 –

答えて

2

は、以下のことを試してみてください。

import bs4 

html = """  
<div class="meta-info meta-info-wide"> <div class="title">Разработчик</div> <div class="content contains-text-link"> 
<a class="dev-link" href="http://www.jourist.com&amp;sa=D&amp;usg=AFQjCNHiC-nLYHAJwNnvDyYhyoeB6n8YKg" rel="nofollow" target="_blank">Перейти на веб-сайт</a> 
<a class="dev-link" href="mailto:[email protected]" rel="nofollow" target="_blank">Написать: [email protected]</a> 
<div class="content physical-address">Diagonalstraße 4120537 Hamburg</div> </div> </div>""" 

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

for div in soup.find_all("div", {"class":"meta-info-wide"}): 
    for link in div.select("a.dev-link"): 
     print link['href'] 

これがあなたに与えます:select()を返すために使用され

http://www.jourist.com&sa=D&usg=AFQjCNHiC-nLYHAJwNnvDyYhyoeB6n8YKg 
mailto:[email protected] 

をすべてaタグのクラスはdev-linkです。これは、CSSクラスが2つ以上ある場合に推奨する方法です。

BeautifulSoup 4.5.1、Python 2.7.12でテスト済み

+0

何が間違っていたのですか?問題は 'import bs4'にありましたか? – Hamama

+0

私は 'from bs4 import BeautifulSoup'をシンプルではありません。' import bs4' – Hamama

+0

次のような場合は、次のようにします:len( "class": "meta-info-wide") print (0) – Hamama

関連する問題