繁体   English   中英

python flask 请求在本地主机上有效,但在远程服务器上无效

[英]python flask requests works on localhost but does not work on remote server

我正在尝试从网站“https://www.wallpaperflare.com”制作壁纸页面,

当我尝试在 localhost 上运行它时,它总是可以工作并显示网站的原始页面。

但是,当我部署到 Heroku 时,该页面不会显示来自网站的原始页面,而是“错误获取请求,代码 403”,这意味着请求不适用于该 url。

这是我的代码:

@app.route("/wallpapers", methods=["GET"])
def wallpaper ():
    page = requests.get("https://www.wallpaperflare.com")
    if page.status_code == 200:
        return page.text
    else:
        return "Error Get Request, Code {}".format(page.status_code)

有没有办法解决它?

HTTP 错误代码 403 表示Forbidden 你可以在这里阅读更多

这意味着wallpaperflare.com不允许您提出请求。 这是因为网站通常不希望脚本向它们发出请求。 请务必阅读网站的robots.txt以查看其脚本抓取策略。 更多关于这里

它可以在您的本地计算机上运行,因为它尚未被 wallpaperflare.com 列入黑名单

这里有两件事:

  • 用户代理- 除非你欺骗它,否则请求模块将使用它自己的字符串,很明显你是一个机器人
  • IP 地址 - 您的服务器 IP 地址可能由于各种原因被拒绝,而您的家庭 IP 地址工作正常。

远程站点也可能会根据客户端应用不同的策略,如果您是机器人,那么您可能会被允许抓取一点,但可能会应用速率限制措施。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM