鱼C论坛

 找回密码
 立即注册
查看: 1679|回复: 9

[已解决]登录账户传参问题

[复制链接]
发表于 2020-7-7 17:26:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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里头用到这俩参数,但是我在发现字典形式的这个参数不能用,有哪些方法可以解决,求大佬们指点一下
最佳答案
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 编码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-7 17:27:58 | 显示全部楼层


你是指 get 里面的参数吧 ? 不能直接传入,要这样写:
res = requests.get(url,headers=headers)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-7-7 17:29:12 | 显示全部楼层
Twilight6 发表于 2020-7-7 17:27
你是指 get 里面的参数吧 ? 不能直接传入,要这样写:

不是  我指的是headers里头第一个  account-no后面那个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-7 17:31:21 | 显示全部楼层
czh1303541051 发表于 2020-7-7 17:29
不是  我指的是headers里头第一个  account-no后面那个

好的吧,那我也不太清楚
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-7-7 18:54:58 | 显示全部楼层
你不提供 url,谁知道你说的那个网站,只有清楚。

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

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

以上都是屁话,可以忽略。你用浏览器访问一下,使用开发者模式的 network 看看人家浏览器是怎么做的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-7 19:33:44 | 显示全部楼层
赚小钱 发表于 2020-7-7 18:54
你不提供 url,谁知道你说的那个网站,只有清楚。

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

这跟我提不提供url没关系,已经解决了,是我描述不清楚吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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 编码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-8 08:09:16 | 显示全部楼层
漏主意思是指
'authorization': f'account-no={zhanghao},login-password={mima}'
吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-11 16:54:38 | 显示全部楼层
赚小钱 发表于 2020-7-7 19:56
怎么可能没关系
一般网站的登录方式是用 HTTP POST 方法,将 account password 等信息,json序列化放 ...

我描述不清楚,最后用字符串拼接弄好了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 01:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表