【发布时间】:2020-07-25 01:38:58
【问题描述】:
我正在尝试抓取 IMDB https://www.imdb.com/chart/top/?ref_=nv_mv_250。我想通过获取所有 href 属性来编写一个循环来进入每个电影页面。但是, urlopen 返回的 html 代码显示损坏的 href 属性(忽略问号后的所有内容)。这是我的代码和结果。非常感谢您。
from bs4 import BeautifulSoup
from urllib.request import urlopen
url = 'https://www.imdb.com/chart/top/?ref_=nv_mv_250'
html = urlopen(url)
bs = BeautifulSoup(html.read(),'html.parser')
table = bs.find('tbody',{'class':'lister-list'})
rows = table.find_all('tr')
for row in rows:
link = row.find('td',{'class':'titleColumn'}).find('a')['href']
print(link)
我得到的结果是这样的(忽略问号后的所有内容)
/usr/local/Caskroom/miniconda/base/envs/web_scraping/bin/python /Users/gracezhou/Python/Python-Projects/scraping/imdb/test.py
/title/tt0111161/
/title/tt0068646/
/title/tt0071562/
/title/tt0468569/
/title/tt0050083/
/title/tt0108052/
/title/tt0167260/
/title/tt0110912/
/title/tt0060196/
/title/tt0120737/
/title/tt0137523/
/title/tt0109830/
我想收到这样的东西:
/title/tt0111161/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=e31d89dd-322d-4646-8962-327b42fe94b1&pf_rd_r=CPK54FS6SPX9EDAPBSJT&pf_rd_s=center-1&pf_rd_t=15506&pf_rd_i=top&ref_=chttp_tt_1
【问题讨论】:
-
请不要将文本发布为图像 寻求调试帮助的问题(“为什么这段代码不起作用?”)应该包括所需的行为,一个特定的问题或错误和最短的代码重现它格式化文本在问题本身。没有明确的问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable Example。
标签: python web-scraping beautifulsoup