【问题标题】:How do I retrieve a specific image from a specific link? (Programming Beginner)如何从特定链接检索特定图像? (编程初学者)
【发布时间】:2018-05-21 22:07:52
【问题描述】:

我是一名编程初学者 - 如果这个问题不合适,请道歉。我已尽力在互联网上搜索今天大部分时间的答案。 我正在尝试从此链接检索图像:http://www.imdb.com/title/tt0076759/mediaviewer/rm2809748992

我正在使用下面的代码:(我知道它会获取所有图像。)

我的问题是 - 为什么此代码适用于此链接:http://www.imdb.com/title/tt0076759/?ref_=nv_sr_5,但不适用于此链接:http://www.imdb.com/title/tt0076759/mediaviewer/rm2809748992

import urllib2
import os
from BeautifulSoup import BeautifulSoup

URL = "http://www.imdb.com/title/tt0076759/mediaviewer/rm2809748992"
default_dir = os.path.join(os.path.expanduser("~"),"Pictures")
opener = urllib2.build_opener()
urllib2.install_opener(opener)
soup = BeautifulSoup(urllib2.urlopen(URL).read())
imgs = soup.findAll("img",{"alt":True, "src":True})

for img in imgs:
    img_url = img["src"]
    filename = os.path.join(default_dir, img_url.split("/")[-1])
    img_data = opener.open(img_url)
    f = open(filename,"wb")
    f.write(img_data.read())
    f.close()

我想从这个链接获取图片:http://www.imdb.com/title/tt0076759/mediaviewer/rm2809748992

我目前没有从该链接获得带有上述代码的图像。但它适用于其他链接。

【问题讨论】:

    标签: image python-2.7 beautifulsoup urllib2 imdb


    【解决方案1】:

    这是因为该 url 中的 img 标记没有 alt 属性,您定义该属性是为了过滤这些 img 标记:

    imgs = soup.findAll("img",{"alt":True, "src":True})
    

    该列表返回空。

    【讨论】:

    • 我假设您正在浏览器中进行检查,由于 javascript 渲染,这可能会将更多内容加载到 DOM 中。对该网址的直接请求(GET 请求)不包含您指定的标签。
    • 好的。感谢您澄清这一点。我仍然很想弄清楚如何获得该特定图像。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-23
    • 1970-01-01
    • 1970-01-01
    • 2016-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多