使用BeautifulSoup基于属性提取图像src
我正在使用BeautifulSoup从IMDb获取HTML页面,我想从页面中提取海报图像。我已经基于其中一个属性获取了图像,但是我不知道如何提取其中的数据。
这是我的代码:
url = 'http://www.imdb.com/title/tt%s/' % (id)
soup = BeautifulSoup(urllib2.urlopen(url).read())
print("before FOR")
for src in soup.find(itemprop="image"):
print("inside FOR")
print(link.get('src'))
-
您快要完成了-
仅有几个错误。soup.find()
获取第一个匹配的元素,而不是列表,因此您无需对其进行迭代。获得元素后,就可以src
使用字典访问来获取其属性(例如)。这是改版的版本:film_id = '0423409' url = 'http://www.imdb.com/title/tt%s/' % (film_id) soup = BeautifulSoup(urllib2.urlopen(url).read()) link = soup.find(itemprop="image") print(link["src"]) # output: http://ia.media-imdb.com/images/M/MV5BMTg2ODMwNTY3NV5BMl5BanBnXkFtZTcwMzczNjEzMQ@@._V1_SY317_CR0,0,214,317_.jpg
我已更改
id
为film_id
,因为id()
它是内置函数,因此屏蔽它们是不好的做法。