2016-11-26 10 views
0
from bs4 import BeautifulSoup 
import requests 

def imdb_spider(): 
    url = 'http://www.imdb.com/chart/top' 
    source_code = requests.get(url) 
    plain_text = source_code.text 
    soup = BeautifulSoup(plain_text) 
    for link in soup.findAll('a', {'class': 'secondaryInfo' }): 
     href = link.get('href') 
     print(href) 

imdb_spider() 

私はimdbのすべての最高評価映画のリンクを取得しようとしています。私はpycharmを使用しています。コードは30分以上実行されますが、私のコンソールには何も印刷されません。コンソールpythonの出力がありません

+1

「source_code」はどこにありますか?このコードは実行できません。エラーメッセージが表示されます。 – furas

+1

IMDBのpythonライブラリがあります... http://imdbpy.sourceforge.net –

+0

ここで 'requests'を使用していますか?行を貼り付けるのを忘れましたか? –

答えて

0

{'class': 'secondaryInfo' }は、<span>オブジェクトのパラメータです。

from bs4 import BeautifulSoup 
import requests 


def imdb_spider(): 
    url = 'http://www.imdb.com/chart/top' 
    source_code = requests.get(url) 
    plain_text = source_code.text 
    soup = BeautifulSoup(plain_text, "lxml") 
    for td in soup.findAll('td', {'class': 'titleColumn'}): 
     href = td.find('a').get('href') 
     print(href) 


imdb_spider() 
1

あなたはすべての映画のタイトルのためのクラスsecondaryInfoを持つ要素があることを正しいですが、それはa要素ではありません。

だからこれを試してみてください。それを見つけたい場合は、別のセレクターを使用する必要があります。たとえば、次のセレクタは soup.findAll()の代わりにトリックを行います。

soup.select('td.titleColumn a')

+0

ありがとう、それは働いた:) – Avinash

+0

素晴らしい!私が手伝ったら答えを受け入れることができますか? –

関連する問題