czh1303541051 发表于 2020-7-7 17:26:15

登录账户传参问题

def Login(zhanghao,mima):
   
    headers = {
      'authorization': 'account-no=zhanghao,login-password=mima',
      'accept': 'application/json',
      'accept-language': 'zh_CN',
      'Connection': 'Keep-Alive',
      'Accept-Encoding': 'gzip',
      'User-Agent': 'okhttp/3.12.1'
    }
    res = requests.get()

上面这个小例子,我定义这个函数设置了俩参数,在headers里头用到这俩参数,但是我在发现字典形式的这个参数不能用,有哪些方法可以解决,求大佬们指点一下

Twilight6 发表于 2020-7-7 17:27:58



你是指 get 里面的参数吧 ? 不能直接传入,要这样写:
res = requests.get(url,headers=headers)

czh1303541051 发表于 2020-7-7 17:29:12

Twilight6 发表于 2020-7-7 17:27
你是指 get 里面的参数吧 ? 不能直接传入,要这样写:

不是我指的是headers里头第一个account-no后面那个

Twilight6 发表于 2020-7-7 17:31:21

czh1303541051 发表于 2020-7-7 17:29
不是我指的是headers里头第一个account-no后面那个

好的吧,那我也不太清楚

赚小钱 发表于 2020-7-7 18:54:58

你不提供 url,谁知道你说的那个网站,只有清楚。

认证方式包括 Basic,Bearer,有的是 oauth,有的是 jwt,完全看 服务端开发者的心情。

据我了解,会在 http head 中使用 account password 的认证只有 basic 认证。

以上都是屁话,可以忽略。你用浏览器访问一下,使用开发者模式的 network 看看人家浏览器是怎么做的。

czh1303541051 发表于 2020-7-7 19:33:44

赚小钱 发表于 2020-7-7 18:54
你不提供 url,谁知道你说的那个网站,只有清楚。

认证方式包括 Basic,Bearer,有的是 oauth,有的是 j ...

这跟我提不提供url没关系,已经解决了,是我描述不清楚吧

赚小钱 发表于 2020-7-7 19:56:11

本帖最后由 赚小钱 于 2020-7-7 19:57 编辑

czh1303541051 发表于 2020-7-7 19:33
这跟我提不提供url没关系,已经解决了,是我描述不清楚吧

怎么可能没关系
一般网站的登录方式是用 HTTP POST 方法,将 account password 等信息,json序列化放到 http body 中

有一些网站,比如路由器的 tplink 等 的登录使用的是 basic 认证,将account password 信息放到 http header 中

而且, basic 认证也不是直接把认证信息放到 header 中,需要经过 base64 编码

Stubborn 发表于 2020-7-8 05:05:39

本帖最后由 Stubborn 于 2020-7-8 05:10 编辑

def Login(zhanghao,mima):
   
    headers = {
      'authorization': 'account-no=zhanghao,login-password=mima',
      'accept': 'application/json',
      'accept-language': 'zh_CN',
      'Connection': 'Keep-Alive',
      'Accept-Encoding': 'gzip',
        ‘PASSWORD’: mima,
        ‘Authorization’: ‘??Base64编码’
      'User-Agent': 'okhttp/3.12.1'
    }
        # Ps我在这里说一句,没有什么爬虫,账号密码是放请求头里面的。一般涉及到登录请求,全部是post,表单提交,就算是get,也是凭借在url里面的
        # 当然排除楼上说的 basic 认证情况。
    res = requests.get(url, headers=heardes)

兰竹皋 发表于 2020-7-8 08:09:16

漏主意思是指
'authorization': f'account-no={zhanghao},login-password={mima}'
吗?

czh1303541051 发表于 2020-7-11 16:54:38

赚小钱 发表于 2020-7-7 19:56
怎么可能没关系
一般网站的登录方式是用 HTTP POST 方法,将 account password 等信息,json序列化放 ...

我描述不清楚,最后用字符串拼接弄好了
页: [1]
查看完整版本: 登录账户传参问题