gpt4 book ai didi

python - 如何使用 urllib 发送 cookie

转载 作者:行者123 更新时间:2023-12-04 16:29:47 27 4
gpt4 key购买 nike

我正在尝试连接到一个需要您使用特定 cookie 才能访问它的网站。为了这个问题,我们将 cookie 称为“required_cookie”,将值称为“required_value”。

这是我的代码:

import urllib
import http.cookiejar

cj = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))

opener.addheaders = [('required_cookie', 'required_value'), ('User-Agent', 'Mozilla/5.0')]

urllib.request.install_opener(opener)

req = Request('https://www.thewebsite.com/')
webpage = urlopen(req).read()
print(webpage)

我是 urllib 的新手,所以请作为初学者回答我

最佳答案

使用 urllib 执行此操作, 你需要:

  • 构建一个 Cookie 目的。构造函数没有记录在文档中,但如果你 help(http.cookiejar.Cookie)在交互式解释器中,您可以看到它的构造函数要求所有 16 个属性的值。请注意 the docs说,“不希望 http.cookiejar 的用户构建他们自己的 Cookie 实例。”
  • 使用 cj.set_cookie(cookie) 将其添加到 cookiejar 中.
  • 使用 cj.add_cookie_headers(req) 告诉 cookiejar 将正确的 header 添加到请求中.

  • 假设您已经正确配置了策略,您就设置好了。

    但这是一个巨大的痛苦。作为 urllib.request 的文档说:

    See also The Requests package is recommended for a higher-level HTTP client interface.



    而且,除非你有充分的理由,否则你不能安装 requests ,你真的应该走那条路。 urllib对于非常简单的情况是可以接受的,当您需要深入了解情况时它会很方便 - 但对于其他所有情况, requests好多了。

    requests ,你的整个程序就变成了单行程序:
    webpage = requests.get('https://www.thewebsite.com/', cookies={'required_cookie': required_value}, headers={'User-Agent': 'Mozilla/5.0'}).text

    ......虽然它可能更易读几行:
    cookies = {'required_cookie': required_value}
    headers = {'User-Agent': 'Mozilla/5.0'}
    response = requests.get('https://www.thewebsite.com/', cookies=cookies, headers=headers)
    webpage = response.text

    关于python - 如何使用 urllib 发送 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51682341/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com