今天详解一篇生物谷的模仿登录,模仿登录首要应用在需求登录才显示全文或者是登录才干拜访的网站用,往往给爬虫作业带来着很大麻烦,网站做模仿登录有时分还会加一些验证码滑块,加密之类的,之前有遇到过了就不再翻了,之后遇到了会出教程。话不多说直接开端

1,仍是先来赏识一下板砖专用图。

生物谷模拟登录
2,网站地址ok,首先我们先注册一个账号,这儿我用的是接码平台上面提供的号码,这建议仍是不要用自己的手机号注册运用好一些。ok,注册好之后去到登录页看一下是个什么情况

2.1,我们挑选账号暗码登录,F12先看一下接口是个啥。

生物谷模拟登录
可见账号和暗码都是明文,有两个参数为(checkCode,csrf_token)目测checkCode因该是和暗码一致 csrf_token现在还不知道是什么

2.3看一下respone返回的是什么

生物谷模拟登录
,算了算了跑路了些什么教程
生物谷模拟登录

2.4,这儿可能是我方才测验的时分调试的次数多导致的,建平常仍是运用上代理ip好一些。 这儿我们整理一下cookies

生物谷模拟登录
2.5,从头建议恳求看一下respone里面内容,发现这儿有一个csrf_token。那就没什么意思了,比照此csrf_token非恳求csrf_token。盲猜这个csrf_token是下一次恳求时分运用的。这就非常明确了。开端写代码

生物谷模拟登录
3,首先发送一个假恳求拿到一个真csrf_token

data = {
    'account': '*****',
    'username': '*****',
    'password': '*****',
    'checkCode': '',
    'remember': '0',
    'csrf_token': 'f2a1512f0e7cc33ad04ea757c05f5675',
    'grant_type': 'password',
    'client_id': 'news-bioon',
    'redirect_uri': 'https://www.bioon.com/user/doLogin.do',
    'state': '',
    'referer': '',
}
csrf_token = requests.post('https://login.bioon.com/login/do_login', cookies=cookies, headers=headers, data=data).json()['csrf_token']

然后运用真的csrf_token做登录

data = {
    'account': '*****',
    'username': '*****',
    'password': '*****',
    'checkCode': '',
    'remember': '0',
    'csrf_token': f'{csrf_token}',
    'grant_type': 'password',
    'client_id': 'news-bioon',
    'redirect_uri': 'https://www.bioon.com/user/doLogin.do',
    'state': '',
    'referer': '',
}
res = requests.post('https://login.bioon.com/login/do_login', cookies=cookies, headers=headers, data=data).json()
print(res)

生物谷模拟登录
生物谷模拟登录
4,有的同学提到cookies问题,这个嘛…之后会更一篇session会话坚持的文章阐明一下,通用于这一类情况处理时的cookies问题,这儿首要讲模仿登录的概念。

5,细心的朋友发现我写文章都是先简单看一下整个要收集的页面情况接口情况,心里有一个构思,然后开端写代码,到写代码环节便是形同流水一般,一贯而通。我也很推荐这种方法,先一致走一遍再有了思路,想好避雷的地方再开端写,而不是拿到一个网站上来就搞。越高越发现到处都是坑。

6,朋友们如果有什么想看的网站爬虫能够留言网站地址,我看到后会更。