一次抓取多个标签

scraping multiple tags at once

我正在尝试抓取 imdb 排名前 250 的电影,我想从此页面获取这些电影的所有 links https://www.imdb.com/chart/top/ 我试过了

html = urlopen('https://www.imdb.com/chart/top/')
bs = BeautifulSoup(html,'html.parser')
links = []
for link in bs.find('td',{'class':'titleColumn'}).find_all('a'):
    links.append(link['href'])
print(links)

但我只得到第一个 link,所以我的问题是如何扩展此代码以包含整个 250 部电影列表?

bs.find('td',{'class':'titleColumn'}) 为您提供第一个条目,find_all('a') 为您提供该条目下的所有 <a> 标签。要查找您可以使用的所有条目

for link in bs.select('td.titleColumn > a'):
    links.append(link['href'])

如果您仍想遍历标题列表并提取更多信息,您需要找到所有标题并从每个标题中提取 <a>

for title in bs.find_all('td', {'class': 'titleColumn'}):
    links.append(title.find('a')['href'])