想提取这个网页的数据
from urllib.request import urlretrieveimport urllibimport randomurl="https://cn.investing.com/indices/hnx-30-components"opener = urllib.request.build_opener()ua_list = ['Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36 Edg/103.0.1264.62', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0', 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0' ]opener.addheaders = [('User-Agent', random.choice(ua_list))]urllib.request.install_opener(opener)urlretrieve(url, '/tmp/test.html')
网页无法打开,浏览器可以打开
File "/usr/local/lib/python3.11/urllib/request.py", line 643, in http_error_default raise HTTPError(req.full_url, code, msg, hdrs, fp)urllib.error.HTTPError: HTTP Error 403: Forbidden
请问,如何解决?
这个问题是因为服务器识别到你所发送的 HTTP 请求头中的 User-Agent 不正确,因此拒绝了你的请求。服务器认为你的请求是来自一个不合法或者不受信任的客户端,所以返回了 403 Forbidden 错误。
你可以通过修改 User-Agent 头来解决这个问题。User-Agent 头是 HTTP 请求头中的一部分,用于告诉服务器发起请求的客户端类型。
你可以尝试使用如下的代码来修改 User-Agent:
from urllib.request import urlretrieveimport urllib.requestimport randomurl = "https://cn.investing.com/indices/hnx-30-components"ua_list = ['Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36 Edg/103.0.1264.62', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0', 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.81 Safari/537.36 SE 2.X MetaSr 1.0' ]while True: opener = urllib.request.build_opener() opener.addheaders = [('User-Agent', random.choice(ua_list))] try: urllib.request.install_opener(opener) urlretrieve(url, '/tmp/test.html') break # 如果成功下载,则跳出循环 except urllib.error.HTTPError as e: if e.code == 403: # 如果服务器返回 403 Forbidden,则继续尝试其他 User-Agent continue else: # 其他错误则退出循环 break
这段代码会尝试使用随机选择的 User-Agent 来发起请求,如果服务器返回 403 Forbidden,则会继续尝试其他 User-Agent,直到成功下载页面或者所有 User-Agent 都尝试过。如果服务器返回的不是 403 Forbidden,则会停止尝试并退出循环。
本文向大家介绍Python3.x爬虫下载网页图片的实例讲解,包括了Python3.x爬虫下载网页图片的实例讲解的使用技巧和注意事项,需要的朋友参考一下 一、选取网址进行爬虫 本次我们选取pixabay图片网站 二、选择图片右键选择查看元素来寻找图片链接的规则 通过查看多个图片路径我们发现取src路径都含有 https://cdn.pixabay.com/photo/ 公共部分且图片格式都为.jpg
问题内容: 这是此网页中的链接 https://www.shareinvestor.com/prices/price_download.html#/?type=price_download_all_stocks_bursa。 然后将其保存到此目录”/home/vinvin/shKLSE/(我正在使用 pythonaywhere)。然后将其解压缩,然后将csv文件解压缩到目录中。 该代码一直运行到最
本文向大家介绍python3 下载网络图片代码实例,包括了python3 下载网络图片代码实例的使用技巧和注意事项,需要的朋友参考一下 说明:这里仅展示在已经获取图片链接后的下载方式,对于爬虫获取链接部分参考前面的文章 1、利用文件读写的方式下载图片 2、urlretrieve()方法 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
我希望在Chrome中查看页面,只有Chrome是打开的,而特定的页面没有加载。 谢谢你给我时间帮我解决问题。
问题内容: 我正在寻找一种从网站自动下载文件的方法。 目前,该过程确实是手动且繁重的。我进入网页,输入通行证并登录。它打开一个弹出窗口,在这里我必须单击下载按钮以保存.zip文件。 您对我如何自动执行此任务有任何建议? 我在Windows 7上,主要可以使用MS Dos Batch或python。但是我愿意接受其他想法。 问题答案: 您可以使用Selenium Web驱动程序自动执行下载。您可以在
我有一个wordpress页面,在JS中有一些自定义功能,人们可以用pdf格式保存。是否有一种方法可以让人们也下载docx(MS Word)中的页面?我试着寻找解决办法,但找不到太多。 我想有一个按钮‘下载为docx',生成一个类似的pdf格式的外观版本。