分享我的生活
分享能使人快乐

人人网的uniqueTimestamp讲解及python3.5实现

话说python爬虫模拟登陆人人网的时候发现cookie总是不对,经过一段时间的抓、看,发现,人人网是分好几次设置cookie的,打开第一次未登录的时候设置一次,大概五六个cookie参数,点击登陆的时候优先请求其他链接,设置1cookie值,另一个链接设置一批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

 

 

就这样吧

赞(0)
未经允许不得转载:RUBLOG-分享我的生活 » 人人网的uniqueTimestamp讲解及python3.5实现

我想说 3

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #-49

    好多年没登陆了 人人还活着吗

    路易大叔4年前 (2016-01-31)Reply
    • 感觉活的很差,在写脚本把东西都down下来。

      xinyu2ru4年前 (2016-02-01)Reply
  2. #-48

    博主你讲的非常好啊!

    上海项目管理软件3年前 (2016-07-25)Reply