我需要在安装了 cloudflare 的网站上获取 HTML。我使用cloudscraper和代理。我的代码在本地服务器上运行。当我从托管运行脚本时,出现 403 错误。为什么它可以在本地服务器上运行而不能在虚拟主机上运行。托管没有限制
scraper = cloudscraper.create_scraper(
interpreter="nodejs",
delay=random.uniform(2, 5),
browser={
"browser": "chrome",
"platform": "ios",
"desktop": False,
},
)
proxy_url = ""
proxy_username = ""
proxy_password = ""
try:
while flag_page:
first_response = scraper.get(
url + str(number_page),
proxies={
"http": f"http://{proxy_username}:{proxy_password}@{proxy_url}",
},
)
cookies_from_response = first_response.cookies
response = scraper.get(
url + str(number_page),
proxies={
"http": f"http://{proxy_username}:{proxy_password}@{proxy_url}",
},
cookies=cookies_from_response,
)
发生的情况主要是,目标网站阻止您,因为它认为您是机器人。它在本地运行,因为在家庭网络中,IP 显示为合法的住宅、公共或公司 IP。然而,当人们使用 AWS、GCP 或 Azure 等流行的托管解决方案时,这些提供商会公开发布其 IP 地址。因此,它可以使目标网站自动将这些 IP 范围添加到黑名单中,以便于识别和阻止自动流量