【问题标题】:Finding the url for an image查找图像的 url
【发布时间】:2017-11-18 03:05:48
【问题描述】:

我目前正在使用 python 网络爬虫来收集在 google 上搜索的图像。我使用 selenium 向下滚动搜索页面,并使用美丽的汤记录所有元素。

对于某些图片,我无需额外点击即可轻松找到网址,例如“http://www.XXXXX.jpg”。但是对于某些图片,如果我不单击它并仅检查元素,则 src 部分将类似于“data:image/jpeg;base 64,/...”。我将通过单击后检查缩放的图像来获得所需的 url。但是我不知道如何使用 selenium 来点击图片。

有没有办法获取此类图片的网址?

【问题讨论】:

  • 参见:How do I do X? SO 的期望是,提出问题的用户不仅会进行研究以回答他们自己的问题,还会分享研究、代码尝试和结果。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案!另见:How to Ask

标签: javascript jquery python image selenium


【解决方案1】:

这可能意味着图像在 html 的 src 部分内编码 要保存图像,您只需要在

之后获取一长串文本
data:image/jpeg;base 64,/

并对其进行解码。

例如

import base64
b64_data = "here_text"
imgdata = base64.b64decode(b64_data)
filename = 'some_image.jpg'  # I assume you have a way of picking unique filenames
with open(filename, 'wb') as f:
    f.write(imgdata)

这也可能意味着在单击缩略图后运行 javascript,然后单击该元素您所要做的就是

driver.find_element_by_css_selector(".classname").click()

【讨论】:

  • 现在它可能只是存储为 Base 64 字符串的缩略图。当您单击它时,可能会在后台发生 javascript 正在构建到实际图像的链接。
  • 在这种情况下,您可以使用 Selenium 单击元素
  • @mduiker 谢谢你们!点击方法确实有效。我如何构建一个while循环或for循环来连续点击所有图像?一旦我点击一张图片,这张图片的所有元素都会被记录下来,对吧?我对网页一无所知...对不起。
猜你喜欢
  • 1970-01-01
  • 2011-09-15
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 2013-07-28
  • 2013-11-25
  • 1970-01-01
相关资源
最近更新 更多