2016-04-21 16 views
1

私は、Beautiful Soupを使ってリンクを見つけるためにHTML文書を解析しようとしていましたが、奇妙な動作が見つかりました。ページはhttp://people.csail.mit.edu/gjtucker/です。はっきりページでより多くのリンクがあるのに対し、http://www.amazon.jobs/team/speech-amazonhttps://scholar.google.com/citations?user=-gJkPHIAAAAJ&hl=en:ここに私のコードだ:美しいスープパーサーがリンクを見つけることができません

from bs4 import BeautifulSoup 
import requests 

user_agent = {'User-agent': 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.52 Safari/537.17'} 

t=requests.get(url, headers = user_agent).text 

soup=BeautifulSoup(t, 'html.parser') 
for link in soup.findAll('a'): 
    print link['href'] 

これには2つのリンクを表示します。

誰でもこれを再現できますか?このURLにこのような特別な理由がありますか?いくつかの外出先URLはうまくいきました。

答えて

0

ページのHTMLが整形式ではありません、あなたはhtml5libのように、more lenient parserを使用する必要があります。

soup = BeautifulSoup(t, 'html5lib') 
for link in soup.find_all('a'): 
    print(link['href']) 

プリント:

http://www.amazon.jobs/team/speech-amazon 
https://scholar.google.com/citations?user=-gJkPHIAAAAJ&hl=en 
http://www.linkedin.com/pub/george-tucker/6/608/3ba 
... 
http://www.hsph.harvard.edu/alkes-price/ 
... 
http://www.nature.com/ng/journal/v47/n3/full/ng.3190.html 
http://www.biomedcentral.com/1471-2105/14/299 
pdfs/journal.pone.0029095.pdf 
pdfs/es201187u.pdf 
pdfs/sigtrans.pdf 
関連する問題