【问题标题】:Getting status code 404 even though page exists即使页面存在,也获取状态码 404
【发布时间】:2018-08-20 22:02:05
【问题描述】:

我已经尝试使用 java 和 python 抓取这个特定链接,但我不断收到 404 状态代码,即使它存在。

import requests
from bs4 import BeautifulSoup
from lxml import html
from collections import defaultdict

url = 'https://www.slacker.com/station/pop-remix'

def main():
    page = requests.get(url)
    print(page.status_code)
    print()

if __name__ == "__main__": main()

【问题讨论】:

  • FWIW,当我运行你的程序时,我得到了200
  • 我会按顺序检查。 (1) 这正是您正在运行的代码吗? (2) 您是在与浏览器相同的机器上运行它,还是在不同网络/地理位置/等上的某个云服务器上运行它? (3) 您是否有可能触发了一些“非法抓取”检测,并且服务器现在会在一段时间内向来自您 IP 的所有请求返回错误?
  • 我也获得了 404 状态。但它似乎实际上是在抓取网页。即 page.content 确实 包含页面的内容。对我来说似乎很奇怪,可以抓取一个找不到的页面......

标签: python html beautifulsoup python-requests http-status-code-404


【解决方案1】:

这似乎是服务器上的一些错误,但这与我们看到 404 时通常会想到的不符(即根本找不到页面)。运行您的代码时,我也收到了 404 响应。但是当我打电话时:

page.content

之后,它确实转储了页面的内容。所以我去浏览器中的链接,打开开发者工具。在控制台中,我可以看到以下错误:

加载资源失败:服务器响应状态为 404(未找到)

即使页面在浏览器中呈现...我的猜测是请求没有完全满足(页面的一部分无法加载),因此服务器决定发出 404 状态,尽管能够为您提供大量其他数据。

【讨论】:

    猜你喜欢
    • 2015-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    • 2021-02-26
    • 2013-11-14
    • 1970-01-01
    相关资源
    最近更新 更多