【问题标题】:Page exist but content is 404 error (want to use Selenium to get image)页面存在但内容为 404 错误(想使用 Selenium 获取图像)
【发布时间】:2021-09-07 18:34:58
【问题描述】:

我想使用 Selenium webdriver 从this site 下载图片

每天都会创建一个新页面,在这个新页面上,图像将在下午 6 点左右上传到它。

url = 'http://covid-19.moh.gov.my/terkini/2021/06/situasi-terkini-covid-19-di-malaysia-24062021'
driver.get(url)
images = driver.find_elements_by_tag_name('img')

for image in images:
  print(image.get_attribute('src'))

当我运行代码时,即使在常规浏览器中看不到图像(下午 6 点之前),使用 selenium 我仍然可以获得这些图像 url 的列表,

# sample output from code
http://covid-19.moh.gov.my/terkini/2021/06/situasi-terkini-covid-19-di-malaysia-24062021/ukk-KlusterBaruHarian9.jpg
http://covid-19.moh.gov.my/terkini/2021/06/situasi-terkini-covid-19-di-malaysia-24062021/ukk-KlusterBaruHarian10.jpg
http://covid-19.moh.gov.my/terkini/2021/06/situasi-terkini-covid-19-di-malaysia-24062021/statskluster01.jpg
http://covid-19.moh.gov.my/terkini/2021/06/situasi-terkini-covid-19-di-malaysia-24062021/statskluster02.jpg
http://covid-19.moh.gov.my/terkini/2021/06/situasi-terkini-covid-19-di-malaysia-24062021/statskluster03.jpg
http://covid-19.moh.gov.my/terkini/2021/06/situasi-terkini-covid-19-di-malaysia-24062021/taburankes-all.jpg

img url 存在,但图像似乎出现 404 错误。

我什至可以在 img url 上使用 wget 来下载,但结果是一个空的/损坏的 img

谁能向我解释这些行为(我没有网络开发知识)以及如何绕过它?我只想在图像真的存在时才下载它。

【问题讨论】:

  • 尝试使用像用户代理这样的标题调用页面
  • 页面动态加载,图片经常被站长公司删除

标签: python html selenium selenium-webdriver


【解决方案1】:

这里有 2 个问题:

  1. 您使用的 URL 加载非常缓慢甚至根本没有加载,这就是您收到 错误 404 的原因
  2. 在执行images = driver.find_elements_by_tag_name('img') 之前,您必须等待/延迟才能让页面完全加载。
    UPD
    如果单击网页上的链接后出现错误 404,则表示该链接已损坏或存在其他服务器端问题。它不是由错误的 Selenium 代码引起的。只是该网站存在一些问题。

【讨论】:

  • 我相信它已完全加载。错误 404 是我输入 img url 本身时。在网页上,在常规浏览器中看不到图像,但使用 selenium 我可以获得 img url 列表,它们本身实际上是空的/404
  • 如果是这样,则链接已损坏。无论如何,这是一个服务器端问题。
  • 如何绕过?
  • 告诉该网站的开发人员修复他们的错误。不是你造成的
猜你喜欢
  • 2011-11-24
  • 2021-08-12
  • 2019-04-07
  • 2012-10-12
  • 1970-01-01
  • 2011-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多