2017-01-17 6 views
1

WebMDからデータを抽出しようとしていますが、コードを実行すると、リベートとして「なし」を続けることになります。私が間違って何をしているのか。私はリンクの数と同じ数のリターンを持っていますが、私はリンクを得ていません。ウェブサイトからのリンク抽出

import bs4 as bs 
import urllib.request 
import pandas as pd 


source = urllib.request.urlopen('https://messageboards.webmd.com/').read() 

soup = bs.BeautifulSoup(source,'lxml') 

for url in soup.find_all('div',class_="link"): 
    print (url.get('href')) 
+0

'プリント(url.get(「のhref」))' 'NONE'あなたを返します。これらの要素は、あなたがそうのような正しい要素からのhrefを取得する必要がありますので、HREF属性を含むa要素をラップ? – Nilesh

+0

はい。この行だけではなく、コード全体を – Data1234

答えて

0

あなたurl要素が実際にdivタグ、ないaです:

>>> x = soup.find_all('div', class_="link") 
>>> x[0] 
<div class="link"><a href="https://messageboards.webmd.com/family-pregnancy/f/relationships/">Relationships</a></div> 

あなたはhref属性を取得する前に、子を選択する必要があります。

>>> x[0].a.get('href') 
'https://messageboards.webmd.com/family-pregnancy/f/relationships/' 

はちょうどあなたのためを変更次のようにループします。

for url in soup.find_all('div',class_="link"): 
    print (url.a.get('href')) 
+0

問題を解決してくれてありがとう! – Data1234

0

soup.find_all('div',class_="link")はすべてlinkdiv要素を返します。

for div in soup.find_all('div',class_="link"): 
    print (div.a.get('href')) 
+0

ありがとうございます! – Data1234

関連する問題