Python爬取HTTPS网页数据

发布于 2022-09-13 00:21:28 字数 1687 浏览 19 评论 0

Python爬取HTTPS网页数据失败

第一种方式


import requests
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0'
    }

    # r = requests.get(url, headers=headers)
    #
    # df = pd.read_html(r.text)
    # print(df)

第二种方式

 # encoding:UTF-8
    import urllib.request
    cookies = "xxxxxx"
    #
    req = urllib.request.Request(url=url, headers=headers, cookies=cookies)
    #
    res = urllib.request.urlopen(req)

    data = res.read()
    print(data)

第三种方式


    # resp = requests.get(url, headers=headers)
    # soup = BeautifulSoup(resp.text, 'html.parser')
    #
    # # 取得各篇 blog 的所有文字
    # divs = soup.find_all('div', 'sc-euitrJ')
    # for div in divs:
    #     print(div.text)

结果都是提示 urllib.error.HTTPError: HTTP Error 403: Forbidden

请问这种情况一般是什么原因引起的?

header全加了

 headers = {
        "Accept": "* / *",
        "Accept - Encoding": "gzip, deflate, br",
        "Accept - Language": "en - US, en;q = 0.5",
        "Cache - Control": "no - cache",
        "Connection": "keep - alive",
        "Content - Length": 424,
        "Content - Type": "application / json",
        # "Cookie": "_ga=GA1.2.467839XXXX; _gid=GA1.2.107XXXX",
        "Host": "xxxxxx",

        "Origin": "https: // xxxx",
        "Pragma": "no - cache",
        "Referer":
            "https: // XXXX",
        "TE": "Trailers",
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0'
    }
        r = requests.post(url, headers=headers,  verify=False)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

昨迟人 2022-09-20 00:21:28

我也经常写爬虫,除非特殊情况,请求的头部(header)一般只需要下面中的几个:

  • Cookie
  • Referer
  • Origin
  • Content-Type
  • User-Agent
  • Host

再根据请求的返回信息(403 Forbidden)可以猜测应该是 Cookie 不对或者没有设置 Cookie。

另外,如果网站的认证信息不是放在 Cookie 中的话,比如用的是 session,可以考虑使用 requests.Session() 先创建一个会话,并使用这个会话进行登录,然后再基于这个会话进行访问网站内容。

希望可以相互学习爬虫相关的内容,这是我的邮箱:mailto:k8scat@gmail.com

却一份温柔 2022-09-20 00:21:28

可能的原因很多。

  1. 你的 url 有问题,指向一个你无权访问的位置,可能是未登录或者 url 本身有错误或者 querystring 有问题等等
  2. 因为各种原因,被反爬了

403 是 HTTP 服务器返回的,如果你在爬一个静态网站,那一般就是 url 出问题了。

如果你在爬一个非静态的网站,那被反爬、给错参数、需要登录之类的可能更大一些。

惜醉颜 2022-09-20 00:21:28

打印原始响应信息看看. 另外用浏览器返回一下, 然后把浏览器里面的header全加到python里面再试试.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文