2016-11-26 1 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 분 이상 실행되지만 내 콘솔에는 인쇄물이 없습니다.콘솔 파이썬에서 출력 없음

+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

멋지다! 내가 도와 주면 대답을 받아 들일 수 있니? –