新浪微博不久前出了一个类似网易一元多宝的产品。许多人质疑,那些中大奖的人都是新浪请的托,具体是不是我也不知道,所以呢,我觉得有必要找到所有中奖用户。

首先,看这个URL:http://1.weibo.com/profilehis?winner=1&uid=2860976304,它返回这个uid=2860976304的用户的中奖情况。

除此之外,我还找到一个接口,返回也是用户的中奖情况,比较好的是,它的返回是json格式,这样处理起来就简单多了。

POST http://1.weibo.com/aj/page/Profileother HTTP/1.1

Host: 1.weibo.com

Proxy-Connection: keep-alive

Content-Length: 26

Cache-Control: max-age=0

Origin: http://burp

Upgrade-Insecure-Requests: 1

User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25

Content-Type: application/x-www-form-urlencoded

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

Referer: http://burp/show/3

Accept-Encoding: gzip, deflate

Accept-Language: zh-CN,zh;q=0.8

Cookie: SINAGLOBAL=5042382967658.341.1454320477597; un=bjmiaoyin2006@yahoo.com.cn; wvr=6; UOR=,,login.sina.com.cn; SCF=AkD5go8FLF4mKVF2-hrc9BU_XIeLwRymEqgOVOtZEk07uzYB0zYwQpPnpt99rxQJBciji219PdUo5s7_BoUBbmA.; SUB=_2A251E2q4DeTxGeVL71cR8i7JwzuIHXVWadtwrDV8PUNbmtAKLVfzkW-AMtvP5SgHzA-5Bi3jRGlhOL_Kdw..; SUBP=0033WrSXqPxfM725Ws9jqgMF55529P9D9WW8O9jiA56-HHn0H2.s1mvB5JpX5KMhUgL.FoefSh-7eo5f1hM2dJLoIXnLxKqL1-BL12-LxK-L12qLB-zLxK-L1h-LB.BLxK-LBo5LBo2LxK-L1-zL1-zLxKqL1-BL12-LxK-L12qLB-zLxK-L1h-LB.Bt; SUHB=0gHiV0NSuPLx_o; ALF=1509445224; SSOLoginState=1477909224; _s_tentry=-; Apache=8995918969370.725.1477909230337; ULV=1477909230350:605:126:1:8995918969370.725.1477909230337:1477672544934

然而,我们要想找到所有用户的中奖情况,那么必须得到所有参加粉丝夺宝用户的uid,要不然,微博用户这么多,我们每一个都要去看它的中奖情况会产生大量的垃圾数据。所以,看下面这个接口:

POST http://1.weibo.com/aj/goods/goodsactors HTTP/1.1

Host: 1.weibo.com

Proxy-Connection: keep-alive

Content-Length: 26

Cache-Control: max-age=0

Origin: http://burp

Upgrade-Insecure-Requests: 1

User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25

Content-Type: application/x-www-form-urlencoded

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

Referer: http://burp/show/1

Accept-Encoding: gzip, deflate

Accept-Language: zh-CN,zh;q=0.8

Cookie: SINAGLOBAL=5042382967658.341.1454320477597; un=bjmiaoyin2006@yahoo.com.cn; wvr=6; UOR=,,login.sina.com.cn; SCF=AkD5go8FLF4mKVF2-hrc9BU_XIeLwRymEqgOVOtZEk07uzYB0zYwQpPnpt99rxQJBciji219PdUo5s7_BoUBbmA.; SUB=_2A251E2q4DeTxGeVL71cR8i7JwzuIHXVWadtwrDV8PUNbmtAKLVfzkW-AMtvP5SgHzA-5Bi3jRGlhOL_Kdw..; SUBP=0033WrSXqPxfM725Ws9jqgMF55529P9D9WW8O9jiA56-HHn0H2.s1mvB5JpX5KMhUgL.FoefSh-7eo5f1hM2dJLoIXnLxKqL1-BL12-LxK-L12qLB-zLxK-L1h-LB.BLxK-LBo5LBo2LxK-L1-zL1-zLxKqL1-BL12-LxK-L12qLB-zLxK-L1h-LB.Bt; SUHB=0gHiV0NSuPLx_o; ALF=1509445224; SSOLoginState=1477909224; _s_tentry=-; Apache=8995918969370.725.1477909230337; ULV=1477909230350:605:126:1:8995918969370.725.1477909230337:1477672544934

这个接口返回的是参加这个pid=42077的所有用户信息 ,包括uid,ip地址,地理位置,参加的时间等。

有了这个,配合爬虫,遍历所有pid,就能得到全部参加粉丝夺宝的uid,这样利用上面的那个接口,就可以找到中奖的用户了。

写两个python的脚本配合一下。

第一个find_uid.py

#! /usr/bin/env python

# coding=utf-8

# author=ntwu

import requests

import json

import sys

import time

import threadpool as tp

headers_fake = {

"Host":"1.weibo.com",

"Accept":"application/json",

"X-Requested-With":"XMLHttpRequest",

"Accept-Language":"zh-cn",

"Accept-Encoding":"gzip, deflate",

"Content-Type":"application/x-www-form-urlencoded",

"Origin":"http://1.weibo.com",

'Connection': 'close',

"User-Agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Mobile/14A456 Safari/602.1",

"Referer":"http://1.weibo.com/goodsunravel?pid=14875",

"Cookie":"ULV=1476417103515:6:4:4:5995306923612.945.1476417103443:1476368007922; _s_tentry=-; Apache=5995306923612.945.1476417103443; UOR=widget.weibo.com,; ALF=1476447308; SUB=_2A2563U8cDeTxGeVL71cR8i7JwzuIHXVWPlFUrDV8PUJbkNANLXHdkW15ppLDnd47HE2FVJkLel1wrmK7mA..; SUBP=0033WrSXqPxfM725Ws9jqgMF55529P9D9WW8O9jiA56-HHn0H2.s1mvB5JpX5oz75NHD95Q0SKBfehz7SKnNWs4Dqc_zi--ciKL2iKy8i--fiKysi-8Fi--fiKnfi-i2i--fi-z7i-zpi--fiKLFiKLFi--ciKL2iKy8i--fiKysi-8Fi--fiKnfi-i2; SCF=Ar1U69gcKJHekMMzG5YnjaDnjG9TWgynF18HHlmDTXKIOHWqdHZYTqfhPhFaH7D1JUVf_uiSD153weX0aorAyhM.; SUHB=0M2F_WriiNbkqY; SINAGLOBAL=6988002809230.238.1461669767154",

}

url = "http://1.weibo.com/aj/goods/goodsactors"

pids = []

for i in range(14847,54847):

pids.append(i)

code_status=""

time_start = time.time()

reload(sys)

sys.setdefaultencoding('utf-8')

def start(test):

while True :

pid = pids.pop()

audiData = {

"pid":pid,

"page":1,

"key":0,

}

while True:

r =requests.post(url,headers=headers_fake,data=audiData,)

all_data = json.loads(r.content)

audiData['page']+=1

if all_data['data'] == []:

break

else:

for d in all_data['data']:

try:

burp_success = open('duobao_account_uid_all.txt', 'a+')

burp_success.write(d['uid']+"\n")

burp_success.close()

time_end = time.time()

except Exception,e:

print all_data

pass

args = [

['http://xxx.com', 'test'],

]

pool = tp.ThreadPool(200)

reqs = tp.makeRequests(start, args)

[pool.putRequest(req) for req in reqs]

pool.wait()

大约二十分钟后,

至此,就可以查看这些用户的中奖情况了。看下面这个脚本,find_won.py

#! /usr/bin/env python

# coding=utf-8

# author=ljs

import codecs

import requests

import json

import sys

import threadpool as tp

import time

headers_fake = {

'Host': '1.weibo.com',

'Accept': 'application/json',

'X-Requested-With': 'XMLHttpRequest',

'Accept-Encoding': 'gzip, deflate',

'Accept-Language': 'zh-cn',

'Content-Type': 'application/x-www-form-urlencoded',

'Origin': 'http://1.weibo.com',

'Content-Length': '30',

'Connection': 'close',

'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_0_2 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Mobile/14A456 Weibo (iPhone8,2__weibo__6.10.2__iphone__os10.0.2)',

'Referer': 'http://1.weibo.com/profilehis?uid=1764571925',

'Cookie': '_s_tentry=-; Apache=7433541909010.6455.1477650674104; SINAGLOBAL=7433541909010.6455.1477650674104; ULV=1477650674175:1:1:1:7433541909010.6455.1477650674104:; SUB=_2A2569oNjDeThGeVL71cR8i7JwzuIHXVWazcrrDV8PUJbitANLWjdkWuBBHv6s4H45nFLilyDjupLYZMaCg..; SUBP=0033WrSXqPxfM725Ws9jqgMF55529P9D9WW8O9jiA56-HHn0H2.s1mvB5NHD95Q0SKBfehz7SKnNWs4DqcjMi--NiK.Xi-2Ri--ciKnRi-zNe0-XSK5Eeh-RS7tt; SCF=AgXi0Twa0slZFI74Y0Pve7kDAPZKPPBjXl2tcaDxP29Frab512QavT429OPislnVrg..; SUHB=0QS53ljQ_62EeR',

}

url = "http://1.weibo.com/aj/page/Profileother"

f_user = open('duobao_account_uid_34499.txt', 'r')

time_start = time.time()

reload(sys)

sys.setdefaultencoding('utf-8')

def start(test):

flag =0

for user in f_user.readlines():

flag +=1

postdata = {

'uid':user[:-1],

'type':'won',

'page':'1',

}

requests.adapters.DEFAULT_RETRIES = 5

r= requests.post(url,data=postdata,headers=headers_fake,timeout=5)

all_data = json.loads(r.content)

d = all_data['data']

if d['list'] != []:

luck = open('luck.txt','a+')

success = codecs.open('won2.json' ,'a+',encoding='utf-8')

line = json.dumps(d['list']) + "\n"

success.write(line.decode('unicode_escape'))

success.write(user+"\n")

success.close()

luck.write(user)

luck.close()

print("%s::%s"%(user,flag))

args = [

['http://xxx.com', 'test'],

]

pool = tp.ThreadPool(200)

reqs = tp.makeRequests(start, args)

[pool.putRequest(req) for req in reqs]

pool.wait()

这是这些用户的中奖情况,

以及中过奖用户的uid:

所以我觉得这真的是个运气游戏???

over!!

python分析微博粉丝_python爬虫,对粉丝夺宝的一次数据分析相关推荐

  1. python刷微博转发_python刷新浪微博粉丝

    之前有个哥们老是要.就放出来.没啥含量.还有个txt的配置文件才可以用.但是配置文件不发出来了.自己看代码很容易猜得到..随便扫两眼就算了,不要拿去刷了.因为实在是没意思.也很低级. 1.[代码][P ...

  2. python获取登录按钮_python爬虫24 | 搞事情了,用 Appium 爬取你的微信朋友圈。

    昨天小帅b看到一些事情不顺眼 有人偷换概念 忍不住就写了一篇反讽 996 的 看不下去了,我支持996,年轻人就该996! 没想到有些人看不懂 这就算了 还来骂我 早些时候关注我的小伙伴应该知道我第一 ...

  3. 一键备份微博并导出生成PDF,顺便用Python分析微博账号数据

    苏生不惑第139 篇原创文章,将本公众号设为星标,第一时间看最新文章. 关于微博之前写过以下文章: 那些你可能不知道的微博奇技淫巧 想方便快捷的分享/收藏图片?试试免费好用的微博/b站图床 如何轻松下 ...

  4. python获取登录按钮_python爬虫24 | 搞事情了,用 Appium 爬取你的微信朋友圈

    ​昨天小帅b看到一些事情不顺眼 有人偷换概念 忍不住就写了一篇反讽 996 的 看不下去了,我支持996,年轻人就该996! 没想到有些人看不懂 这就算了 还来骂我 早些时候关注我的小伙伴应该知道我第 ...

  5. 如何用python爬股票数据_python爬虫股票数据,如何用python 爬虫抓取金融数据

    Q1:如何用python 爬虫抓取金融数据 获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一.鉴于此,我拾起了Python这把利器,开启了网络爬虫之路. 本篇使用的版本为 ...

  6. 一键备份微博并导出生成PDF,顺便用Python分析微博账号数据!

    这里再分享下如何快速导出你的所有微博数据,然后用Python分析某个微博账号的数据,比如高赞,转发,评论微博,微博词云,微博发布时间轴,以及使用的手机. 稳部落 这是一个专业备份导出微博记录工具 ht ...

  7. python sqlite3 带密码_Python爬虫+Flask,带你创建个网站!

    文化不分边界 人,为什么要读书?举个例子: 当看到天边飞鸟,你会说:"落霞与孤鹜齐飞,秋水共长天一色."而不是:"卧靠,好多鸟."; 当你失恋时你低吟浅唱道:& ...

  8. python编程理论篇_Python爬虫入门实战之猫眼电影数据抓取(理论篇)

    前言 本文可能篇幅较长,但是绝对干货满满,提供了大量的学习资源和途径.达到让读者独立自主的编写基础网络爬虫的目标,这也是本文的主旨,输出有价值能够真正帮助到读者的知识,即授人以鱼不如授人以渔,让我们直 ...

  9. python分析微博粉丝_python数据分析微博热门

    接上篇,这一篇将从技术层面讲讲是如何实现的.阅读本文您将会了解如何用python爬取微博的评论以及如何用python word_cloud库进行数据可视化. 准备工作 为什么要用m站地址?因为m站可以 ...

最新文章

  1. 数据库优化:Mysql慢查询的定位和分析
  2. Docker: Failed to get D-Bus connection: No connection to service
  3. SSIS 执行变量中的脚步输出列顺序与SQL查询列顺序不同
  4. stm32 通用bootloader_stm32最简单的实现BootLoader
  5. position绝对定位后,a中使用display:block 无效的解决办法
  6. 21届校招应届生Offer薪资曝光:年薪35万+,倒挂老员工:我还没有应届生重要
  7. 软件架构师必需要了解的 saas 架构设计?
  8. 【行车路径规划】百度地图API,行车路径规划 起始点+途经点
  9. 一个优秀的UI界面应该是什么样的
  10. php导入excel 进度条,.NET_进度条在.net导入Excel时的应用实例,本文实例讲述了进度条在.net导 - phpStudy...
  11. 新买的电脑,设置电脑
  12. the specified license key not be verified as belonging to this host
  13. 深度学习笔记----三维卷积及其应用(3DCNN,PointNet,3D U-Net)
  14. Python文本分析(精读笔记1)
  15. 扫地机器人智能化升级之路 智能决策成为关键
  16. Echarts —自定义label标签的样式(formatter,rich,添加图标等操作)
  17. 关于短时傅立叶变换的基线的选取以及可靠频率点的关系
  18. 【项目实践】U-V视差路面检测之动态规划
  19. 按键控制三个LED灯亮关
  20. 分享聚能聊向代码致敬,寻找你的第83行话题评论截图,得礼品咯!

热门文章

  1. 用 C# picturebox 控件画图
  2. Java常见易错问题记录
  3. 100元钱买100只鸡
  4. cocos2d-x 关于旋转和移动的一点小技巧
  5. android 家庭理财软件 需求分析,基于Android的家庭理财通的设计与实现.docx
  6. Java基础学习Day09--字符串
  7. 使用POI读取EXCEL大文件时,在解析数据的过程中对数据完成处理转换
  8. 搜索引擎收录提交入口
  9. iTOP-RK3568开发板Ubuntu系统修改dns
  10. 从SEO优化角度打造移动端网站的移动建站指南