最近在学爬虫,准备拿学校微信公众号试试手,但是发现token取不出来。。。
用Print大法,发现token总是为0 。。。,这是什么情况。。。
部分代码如下
def get_content(query):
url = 'https://mp.weixin.qq.com'
header = {
"HOST": "mp.weixin.qq.com",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36"
}
with open('cookie.txt', 'r', encoding='utf-8') as f:
cookie = f.read()
cookies = json.loads(cookie)
response = requests.get(url=url, cookies=cookies)
print(response.url)
res = requests.get(response.url)
token = re.findall(r'token=(\d+)', res.text)
print(token)
这张图是我把res.text保存下来后看的,发现token里为空
但是我自己进平台主页看源码里,其实是有token的
难道说我其实没有登陆进去吗?怎么看自己是不是已经登陆成功了呢。。。
你有登录?
token是在你登录之后,才会有值的。
我来给你科普一下token的概念 token:令牌以下来自百度
是服务端生成的一串字符串,作为客户端进行请求的一个标识。
当用户第一次登录后,服务器生成一个token并将此token返回给客户端,以后客户端只需带上这个token前来请求数据即可,无需再次带上用户名和密码。
简单token的组成;uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,token的前几位以哈希算法压缩成的一定长度的十六进制字符串。为防止token泄露)。
用户登录时客户端向服务端发送请求,服务端收到请求验证 验证通过之后会返回给客户端一个token 一般是sesssionId,下次再去访问的时候就不需要进行用户名密码验证了,只要你的token不为空就ok,当然如果做权限控制的话 token可能还得进一步验证。