【发布时间】:2021-12-08 16:49:12
【问题描述】:
我正在尝试自动从该网站下载图片,但出现错误
代码
> import urllib.request
> rain = "http://www.bom.gov.au/charts_data/IDY20108/current/mslp-precip/IDY20108.mslp-precip.012.png?1634817600"
> urllib.request.urlretrieve(rain, '/content/download_gambar/rain.png')
错误
HTTPError Traceback(最近调用 最后)在() 1 导入 urllib.request 2雨=“http://www.bom.gov.au/charts_data/IDY20108/current/mslp-precip/IDY20108.mslp-precip.012.png?1634817600” ----> 3 urllib.request.urlretrieve(rain, '/content/download_gambar/rain.png')
6 帧 /usr/lib/python3.7/urllib/request.py 中 http_error_default(self, req, fp, code, msg, hdrs) 647 类 HTTPDefaultErrorHandler(BaseHandler): 第648章 --> 649 引发 HTTPError(req.full_url, code, msg, hdrs, fp) 650 651类HTTPRedirectHandler(BaseHandler):
HTTPError:HTTP 错误 403:禁止
【问题讨论】:
-
您可能需要登录或在您的 cookie 中设置一些正确的值(例如同意版权声明或类似内容)才能进行下载。
-
BoM 最近一直在打击网络抓取,但有可能通过简单地欺骗标题中的 User-Agent 来解决这个问题......
-
我很好奇,看了看——确实是这样,参考reg.bom.gov.au/screenscraper/screenscraper_enquiry_form;如果您尝试使用修改后的标头进行自动访问,它将工作一次,但再次运行它会收到警告文档:“由于检测到潜在的自动访问请求,您的访问被阻止。气象局网站不支持网络抓取:如果您试图通过自动化方式访问局数据,您应该停止。”
-
虽然你可能仍然可以使用
selenium的网络驱动程序让它工作,但请注意你明确违反了你正在抓取的网站的使用条款,所以我不会不推荐。 -
所以没有办法安全且持续地自动化它吗?
标签: python