【发布时间】:2021-10-27 12:23:23
【问题描述】:
我正在尝试从某个网站下载大量 HTML 页面,并使用以下 python 代码使用“请求”包:
FROM = 547495
TO = 570000
for page_number in range(FROM, TO):
url = DEFAULT_URL + str(page_number)
response = requests.get(url)
if response.status_code == 200:
with open(str(page_number) + ".html", "wb") as file:
file.write(response.content)
time.sleep(0.5)
我设置了一个 sleep(0.5) 命令,以便网络服务器不会认为这是 DDOS 攻击。
大约 20,000 个页面后,我开始只收到 403 禁止 http 状态码,并且我无法再下载页面。 但是,如果我尝试在浏览器中打开相同的页面,它会很好地打开,所以我猜网络服务器并没有阻止我。 有人有想法是什么原因造成的吗?我该如何处理?
谢谢
【问题讨论】:
-
DEFAULT_URL意识到您正在抓取它并阻止您。尝试使用代理。 -
另外,请阅读他们的 TOS,或许可以找到 API。当 ppl 刮你并且你有一个 API 时,这真的很烦人
-
你可以更改标题吗?
-
它可能希望你使用一些标题。
-
@mplungjan 他们没有 API。
标签: python html httprequest