【发布时间】:2017-02-09 09:40:35
【问题描述】:
我正在使用 BeautifulSoup 来提取适用于普通页面的图片。 现在我想从这样的网页中提取 Chromebook 的图片
https://twitter.com/banprada/statuses/829102430017187841
该页面显然包含指向带有该图像的另一个页面的链接。这是我从提到的链接下载图片的代码,但我只获取发布链接的人的图片。
import urllib.request
import os
from bs4 import BeautifulSoup
URL = "http://twitter.com/banprada/statuses/829102430017187841"
list_dir="D:\\"
default_dir = os.path.join(list_dir,"Pictures_neu")
opener = urllib.request.build_opener()
urllib.request.install_opener(opener)
soup = BeautifulSoup(urllib.request.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()
有机会以某种方式下载图像吗?
非常感谢和问候, 安迪
【问题讨论】:
-
页面有JS在你用urllib获取网页时没有渲染
-
尝试使用 JS 渲染器库,如 here 中提到的dryscrape
-
所需图像位于
iframe内,初始页面源中不存在该图像。您可以在Python+selenium获得解决方案吗? -
感谢提示。 Python + selenium 可能是一个解决方案(如果有一个可行的解决方案会很棒)
标签: python beautifulsoup