【问题标题】:Python fetch data 403Python 获取数据 403
【发布时间】:2010-12-28 12:38:01
【问题描述】:

我正在尝试使用 urllib2 从网页中获取数据。该页面在浏览器上可见,但通过脚本我不断收到 HTTPError: HTTP Error 403: Forbidden

我还尝试通过更改用户代理字符串来模仿浏览器请求,但没有成功。

对此有什么想法吗?

【问题讨论】:

  • 网站是否需要身份验证?如果是,如何跟踪用户?该网站是否使用 cookie 来跟踪经过身份验证的用户?如果是,您需要随 HTTP 请求一起发送 cookie。
  • 您能否提供更多有关您用于访问上述网站的网站和代码的详细信息。这可能不是 User-Agent 的问题。
  • @Darin - 无需身份验证。饼干,我得检查一下。这是我要获取的页面的 url。 nseindia.com/content/fo/fo_underlyinglist.htm

标签: python urllib2 fetch http-status-code-403 httplib2


【解决方案1】:

我尝试使用篡改数据和 Firefox 仅发送用户代理,但得到 403。 尝试添加其他标题:

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive

我试过了,应该可以了。

【讨论】:

    【解决方案2】:

    该网站正在检查您的User-Agent,只需将其设置为Internet Explorer

    request.add_header('User-Agent', 'Internet Explorer')
    

    我确认这适用于 wget,除非您将用户代理设置为 Internet Explorer,否则您会得到 403。

    【讨论】:

      【解决方案3】:

      :) 我也在尝试从 NSE 获取报价!像 pythonFoo 说你需要额外的标题。但是只有接受就足够了。 用户代理可以说 python(保持真实!)

      【讨论】:

        猜你喜欢
        • 2023-04-05
        • 1970-01-01
        • 1970-01-01
        • 2018-12-18
        • 2018-08-03
        • 2013-06-27
        • 2012-12-02
        • 2018-07-18
        • 2020-06-28
        相关资源
        最近更新 更多