人人网的uniqueTimestamp讲解及python3.5实现
话说python爬虫模拟登陆人人网的时候发现cookie总是不对,经过一段时间的抓、看,发现,人人网是分好几次设置cookie的,打开第一次未登录的时候设置一次,大概五六个cookie参数,点击登陆的时候优先请求其他链接,设置1个cookie值,另一个链接设置一批cookie值。
其中像 ht tp://www.renren.com/ajaxLogin/login?1=1&uniqueTimestamp=2016001452457就是一个返回设置cookie值的网址。
uniqueTimestamp的值是在ht tp://s.xnimg.cn/a75275/nx/apps/login/login.js中的一段代码实现的,具体代码为
{var o=new Date;
i=i+"&uniqueTimestamp="+o.getFullYear()+o.getMonth()+o.getDay()+o.getHours()+o.getSeconds()+o.getUTCMilliseconds()}
html代码运行结果见http://www.5169.info/tool/jsdate.html
但是。。但是,为什么month好像比实际月份小啊!!
还有day和实际中的日期对不起来啊!!
因为
在java script中规定,Date函数getMonth()方法中,1月=0, 2月=1, 3月=2 …… 12月=11
相应的,getDay()方法是获取星期几,不是日期不是日期不是日期,星期天=0,
星期一=1,星期二=2……
python中就容易实现了,除了毫秒,因为毫秒在python中需要写函数自己搞。
因为我们是发送的数据,根据对方的js代码,我早请求多少毫秒晚请求多少毫秒,对方是不关心的,只要我们提供一个毫秒就好了。so,我们就random一个。
#!/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'rublog'
import time
import random
localtime = time.localtime()
print(localtime)
today = int(time.strftime("%w"))
millisec = random.randint(0, 999)
print(millisec)
uniqueTimestamp = str(localtime[0])+str(localtime[1]-1)+str(today)+str(localtime[3])+str(localtime[4])+str(millisec)
print(uniqueTimestamp)
https://github.com/xinyu3ru/rublog/blob/master/uniqueTimestamp.py
就这样吧
版权声明:
作者:xinyu2ru
链接:https://www.rxx0.com/motion/ren-ren-wang-di-uniquetimestamp-jiang-jie-ji-python3-5-shi-xian.html
来源:RUBLOG-分享我的生活
文章版权归作者所有,未经允许请勿转载。
路易大叔
好多年没登陆了 人人还活着吗
xinyu2ru@路易大叔
感觉活的很差,在写脚本把东西都down下来。
上海项目管理软件
博主你讲的非常好啊!