我有一个问题:有一堆.csv文件,我必须从一个网站下载,其中大约100个。下载每一个需要3-4点击,我不得不更新下载大约每3-4个月左右。因此,我使用urllib.request.urlopen()创建了一个Python3脚本。
问题是,如果手动下载正常,当我使用脚本时,返回的文件(而不是.csv )是一个html文件,其中包含“请求的URL被拒绝。请咨询您的管理员。”我尝试在bash中使用wget或curl,并得到了相同的结果。
发布于 2022-04-26 10:08:43
在请求的标题中添加用户代理。您的代码将类似于:
import requests
url = 'http://example.com/filename.doc'
filename = url.split('/')[-1]
user_agent = {'User-agent': 'Mozilla/5.0'}
r = requests.get(url, allow_redirects=True, headers = user_agent)
open(f'dirrictory/{filename}', 'wb').write(r.content)https://stackoverflow.com/questions/61216947
复制相似问题