控制台python中没有输出

时间:2016-11-26 03:38:56

标签: python pycharm

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分钟,但我没有在我的控制台中获得任何打印。

2 个答案:

答案 0 :(得分:1)

对于每个电影标题,都有一个带有secondaryInfo类的元素,这是正确的,但这不是a元素。如果要查找,则必须使用其他选择器。例如,以下选择器将执行该操作,而不是使用soup.findAll()

soup.select('td.titleColumn a')

答案 1 :(得分: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()