设置抢红包尾数的软件软件设置应该输入多少

&人参与 | 时间:日 10:41
微信红包,红包就流行语各个微信群之间,很多人为抢红包而不亦乐乎,甚至有的人还用抢红包软件!可是有用抢红包软件的人要注意了: dns向松松爆料:微信宣布严打抢红包软件,微信已具备检测用户是否使用了抢红包软件的能力。被检测到使用抢红包软件的用户,其账户将被严肃处理。据悉抢红包软件可能对用户的账号安全和个人隐私带来隐患,而且微信拼手气红包是服务器随机生成,没有软件能做到一定抢到“最佳”金额。相信微信会对红包的管理越来越严,各位要注意了!顶: 0踩: 0 来源:,欢迎分享,(QQ/微信:) 原文地址:
相关文章阅读更多:&&
(window.slotbydup=window.slotbydup || []).push({
id: '2398785',
container: s,
size: '760,90',
display: 'inlay-fix'
名 称 必填
邮 箱 选填
网 址 选填
◎已有人评论,微信搜:QQ
1楼&& 07:37:22 又涨姿势了顶: <ins data-digg="踩: <ins data-digg="
2楼&& 22:27:30 喜大普奔顶: <ins data-digg="踩: <ins data-digg="
3楼&& 11:04:12 这就是用来作对比的隐形公司啊顶: <ins data-digg="踩: <ins data-digg="
4楼&& 09:37:35 哇哦,真心好公司~顶: <ins data-digg="踩: <ins data-digg="
5楼&& 14:52:39 老板牛逼。。。顶: <ins data-digg="踩: <ins data-digg="
6楼&& 12:43:26 压价格而已。这么好直接找那家公司算了。顶: <ins data-digg="踩: <ins data-digg="
7楼&& 12:27:33 那家公司永远是最好的,呵呵顶: <ins data-digg="踩: <ins data-digg="
8楼&& 10:58:06 不是愚人节哦,顶: <ins data-digg="踩: <ins data-digg="
9楼&& 10:44:36 嗯嗯,老板嘴里的 “那家公司”顶: <ins data-digg="踩: <ins data-digg="
10楼&& 14:56:57 对于老百姓来说没影响顶: <ins data-digg="踩: <ins data-digg="
11楼&& 22:15:18 红包软件日子越来越不好过乐顶: <ins data-digg="踩: <ins data-digg="
12楼&& 17:01:44 本身就没有用过这个,太浪费资源了顶: <ins data-digg="踩: <ins data-digg="
13楼&& 15:26:31 用抢红包软件太费电了.不好玩顶: <ins data-digg="踩: <ins data-digg="
14楼&& 12:42:26 我都还没抢过呢!做人嘛,最重要的就是开森啦!顶: <ins data-digg="踩: <ins data-digg="
15楼&& 11:40:17 这下没得抢了吧。顶: <ins data-digg="踩: <ins data-digg="
16楼&& 11:12:22 是的,还有些人几个微信号抢红包,我也是醉了,越来越变相了。。顶: <ins data-digg="踩: <ins data-digg="
17楼&& 09:40:28 本来就是一个娱乐的功能,让有些人弄得变了味,官方不得不出面解决这个问题了。顶: <ins data-digg="踩: <ins data-digg="
18楼&& 09:18:08 如果一定能够抱到最佳金额,那同时用的人怎么办?顶: <ins data-digg="踩: <ins data-digg="
19楼&& 08:21:28 相信微信会对红包的管理越来越严顶: <ins data-digg="踩: <ins data-digg="
20楼&& 21:31:15 哈哈哈,终于出手了。顶: <ins data-digg="踩: <ins data-digg="
21楼&& 14:53:57 严打到底··顶: <ins data-digg="踩: <ins data-digg="
22楼&& 14:25:44 对于作弊软件一律打击。顶: <ins data-digg="踩: <ins data-digg="
23楼&& 13:53:33 确实要严厉的抓一下了,利用微信红包软件抢红包会让这个活动失去原来的意义顶: <ins data-digg="踩: <ins data-digg="
24楼&& 12:45:21 猫抓老鼠,老鼠打猫顶: <ins data-digg="踩: <ins data-digg="
25楼&& 12:37:25 早该这样了顶: <ins data-digg="踩: <ins data-digg="
26楼&& 12:27:37 到处严打顶: <ins data-digg="踩: <ins data-digg="
27楼&& 11:22:20 这个可以有,很多外挂的软件~顶: <ins data-digg="踩: <ins data-digg="
顶的最多文章&&
21381039765639570512
(window.slotbydup=window.slotbydup || []).push({
id: '2398769',
container: s,
size: '300,250',
display: 'inlay-fix'
最牛评论 218154145787472
最近活动 福利投票烧烤会活动花絮如何科学的抢红包:写个程序抢红包
招聘信息:
0×00 背景大家好,我是来自IDF实验室的!红包纷纷何所似?兄子胡儿曰:“撒钱空中差可拟。”兄女道韫曰:“未若姨妈因风起。”背景大家都懂的,要过年了,正是红包满天飞的日子。正巧前两天学会了Python,比较亢奋,就顺便研究了研究微博红包的爬取,为什么是微博红包而不是支付宝红包呢,因为我只懂Web,如果有精力的话之后可能也会研究研究打地鼠算法吧。因为本人是初学Python,这个程序也是学了Python后写的第三个程序,所以代码中有啥坑爹的地方请不要当面戳穿,重点是思路,嗯,如果思路中有啥坑爹的的地方也请不要当面戳穿,你看IE都有脸设置自己为默认浏览器,我写篇渣文得瑟得瑟也是可以接受的对吧……我用的是Python 2.7,据说Python 2和Python 3差别挺大的,比我还菜的小伙伴请注意。0×01 思路整理懒得文字叙述了,画了张草图,大家应该可以看懂。首先老规矩,先引入一坨不知道有啥用但又不能没有的库:import&re
import&urllib
import&urllib2
import&cookielib
import&base64&
import&binascii&
import&json
import&sys&
import&cPickle&as&p
import&rsa然后顺便声明一些其它变量,以后需要用到:reload(sys)
sys.setdefaultencoding(&#39;utf-8&&#39;)&#将字符编码置为utf-8
luckyList=[]&#红包列表
lowest=10&#能忍受红包领奖记录最低为多少这里用到了一个rsa库,Python默认是不自带的,需要安装一下:下载下来后运行setpy.py install安装,然后就可以开始我们的开发步骤了。0×02 微博登陆抢红包的动作一定要登陆后才可以进行的,所以一定要有登录的功能,登录不是关键,关键是cookie的保存,这里需要cookielib的配合。cj&=&cookielib.CookieJar()
opener&=&urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)这样凡是使用opener进行的网络操作都会对处理cookie的状态,虽然我也不太懂但是感觉好神奇的样子。接下来需要封装两个模块,一个是获取数据模块,用来单纯地GET数据,另一个用来POST数据,其实只是多了几个参数,完全可以合并成一个函数,但是我又懒又笨,不想也不会改代码。def&getData(url)&:
&&&&&&&&try:
&&&&&&&&&&&&&&&&req&&=&urllib2.Request(url)
&&&&&&&&&&&&&&&&result&=&opener.open(req)
&&&&&&&&&&&&&&&&text&=&result.read()
&&&&&&&&&&&&&&&&text=text.decode("utf-8").encode("gbk",&#39;ignore&#39;)
&&&&&&&&&&&&&&&&return&text
&&&&&&&&except&Exception,&e:
&&&&&&&&&&&&&&&&print&u&#39;请求异常,url:&#39;+url
&&&&&&&&&&&&&&&&print&e
def&postData(url,data,header)&:
&&&&&&&&try:
&&&&&&&&&&&&&&&&data&=&urllib.urlencode(data)&
&&&&&&&&&&&&&&&&req&&=&urllib2.Request(url,data,header)
&&&&&&&&&&&&&&&&result&=&opener.open(req)
&&&&&&&&&&&&&&&&text&=&result.read()
&&&&&&&&&&&&&&&&return&text
&&&&&&&&except&Exception,&e:
&&&&&&&&&&&&&&&&print&u&#39;请求异常,url:&#39;+url有了这两个模块我们就可以GET和POST数据了,其中getData中之所以decode然后又encode啥啥的,是因为在Win7下我调试输出的时候总乱码,所以加了些编码处理,这些都不是重点,下面的login函数才是微博登陆的核心。def&login(nick&,&pwd)&:
&&&&&&&&print&u"----------登录中----------"
&&&&&&&&print&&"----------......----------"
&&&&&&&&prelogin_url&=&&#39;.cn/sso/prelogin.php?entry=weibo&callback=sinaSSOController.preloginCallBack&su=%s&rsakt=mod&checkpin=1&client=ssologin.js(v1.4.15)&_=6&#39;&%&nick
&&&&&&&&preLogin&=&getData(prelogin_url)
&&&&&&&&servertime&=&re.findall(&#39;"servertime":(.+?),&#39;&,&preLogin)[0]
&&&&&&&&pubkey&=&re.findall(&#39;"pubkey":"(.+?)",&#39;&,&preLogin)[0]
&&&&&&&&rsakv&=&re.findall(&#39;"rsakv":"(.+?)",&#39;&,&preLogin)[0]
&&&&&&&&nonce&=&re.findall(&#39;"nonce":"(.+?)",&#39;&,&preLogin)[0]
&&&&&&&&#print&bytearray(&#39;xxxx&#39;,&#39;utf-8&#39;)
&&&&&&&&su&&=&base64.b64encode(urllib.quote(nick))
&&&&&&&&rsaPublickey=&int(pubkey,16)
&&&&&&&&key&=&rsa.PublicKey(rsaPublickey,65537)
&&&&&&&&message&=&str(servertime)&+&#39;\t&#39;&+&str(nonce)&+&&#39;\n&#39;&+&str(pwd)
&&&&&&&&sp&=&binascii.b2a_hex(rsa.encrypt(message,key))
&&&&&&&&header&=&{&#39;User-Agent&#39;&:&&#39;Mozilla/5.0&(&MSIE&9.0;&Windows&NT&6.1;&WOW64;&Trident/5.0)&#39;}
&&&&&&&&param&=&{
&&&&&&&&&&&&&&&&&#39;entry&#39;:&&#39;weibo&#39;,
&&&&&&&&&&&&&&&&&#39;gateway&#39;:&&#39;1&#39;,
&&&&&&&&&&&&&&&&&#39;from&#39;:&&#39;&#39;,
&&&&&&&&&&&&&&&&&#39;savestate&#39;:&&#39;7&#39;,
&&&&&&&&&&&&&&&&&#39;userticket&#39;:&&#39;1&#39;,
&&&&&&&&&&&&&&&&&#39;ssosimplelogin&#39;:&&#39;1&#39;,
&&&&&&&&&&&&&&&&&#39;vsnf&#39;:&&#39;1&#39;,
&&&&&&&&&&&&&&&&&#39;vsnval&#39;:&&#39;&#39;,
&&&&&&&&&&&&&&&&&#39;su&#39;:&su,
&&&&&&&&&&&&&&&&&#39;service&#39;:&&#39;miniblog&#39;,
&&&&&&&&&&&&&&&&&#39;servertime&#39;:&servertime,
&&&&&&&&&&&&&&&&&#39;nonce&#39;:&nonce,
&&&&&&&&&&&&&&&&&#39;pwencode&#39;:&&#39;rsa2&#39;,
&&&&&&&&&&&&&&&&&#39;sp&#39;:&sp,
&&&&&&&&&&&&&&&&&#39;encoding&#39;:&&#39;UTF-8&#39;,
&&&&&&&&&&&&&&&&&#39;url&#39;:&&#39;/ajaxlogin.php?framelogin=1&callback=parent.sinaSSOController.feedBackUrlCallBack&#39;,
&&&&&&&&&&&&&&&&&#39;returntype&#39;:&&#39;META&#39;,
&&&&&&&&&&&&&&&&&#39;rsakv&#39;&:&rsakv,
&&&&&&&&&&&&&&&&}
&&&&&&&&s&=&postData(&#39;.cn/sso/login.php?client=ssologin.js(v1.4.15)&#39;,param,header)
&&&&&&&&try:
&&&&&&&&&&&&&&&&urll&=&re.findall("location.replace\(\&#39;(.+?)\&#39;\);"&,&s)[0]
&&&&&&&&&&&&&&&&login=getData(urll)
&&&&&&&&&&&&&&&&print&u"---------登录成功!-------"
&&&&&&&&&&&&&&&&print&&"----------......----------"
&&&&&&&&except&Exception,&e:
&&&&&&&&&&&&&&&&print&u"---------登录失败!-------"
&&&&&&&&&&&&&&&&print&&"----------......----------"
&&&&&&&&&&&&&&&&exit(0)这里面的参数啊加密算法啊都是从网上抄的,我也不是很懂,大概就是先请求个时间戳和公钥再rsa加密一下最后处理处理提交到新浪登陆接口,从新浪登录成功之后会返回一个微博的地址,需要请求一下,才能让登录状态彻底生效,登录成功后,后面的请求就会带上当前用户的cookie。0×03 指定红包抽取成功登录微博后,我已迫不及待地想找个红包先试一下子,当然首先是要在浏览器里试的。点啊点啊点啊点的,终于找到了一个带抢红包按钮的页面了,F12召唤出调试器,看看数据包是咋请求的。可以看到请求的地址是,主要参数有两个,一个是ouid,就是红包id,在URL中可以看到,另一个share参数决定是否分享到微博,还有个_t不知道是干啥用的。好,现在理论上向这个url提交者三个参数,就可以完成一次红包的抽取,但是,当你真正提交参数的时候,就会发现服务器会很神奇地给你返回这么个串:{"code":303403,"msg":"抱歉,你没有权限访问此页面","data":[]}这个时候不要惊慌,根据我多年Web开发经验,对方的程序员应该是判断referer了,很简单,把请求过去的header全给抄过去。def&getLucky(id):&#抽奖程序
&&&&&&&&print&u"---抽红包中:"+str(id)+"---"
&&&&&&&&print&&"----------......----------"
&&&&&&&&if&checkValue(id)==False:&#不符合条件,这个是后面的函数
&&&&&&&&&&&&&&&&return
&&&&&&&&luckyUrl="/aj_hongbao/getlucky"
&&&&&&&&param={
&&&&&&&&&&&&&&&&&#39;ouid&#39;:id,
&&&&&&&&&&&&&&&&&#39;share&#39;:0,
&&&&&&&&&&&&&&&&&#39;_t&#39;:0
&&&&&&&&&&&&&&&&}
&&&&&&&&header=&{
&&&&&&&&&&&&&&&&&#39;Cache-Control&#39;:&#39;no-cache&#39;,
&&&&&&&&&&&&&&&&&#39;Content-Type&#39;:&#39;application/x-www-form-urlencoded&#39;,
&&&&&&&&&&&&&&&&&#39;Origin&#39;:&#39;&#39;,
&&&&&&&&&&&&&&&&&#39;Pragma&#39;:&#39;no-cache&#39;,
&&&&&&&&&&&&&&&&&#39;Referer&#39;:&#39;/hongbao/&#39;+str(id),
&&&&&&&&&&&&&&&&&#39;User-Agent&#39;:&#39;Mozilla/5.0&(Windows&NT&6.1;&WOW64)&AppleWebKit/537.36&(KHTML,&like&Gecko)&Chrome/33.0.&BIDUBrowser/6.x&Safari/537.36&#39;,
&&&&&&&&&&&&&&&&&#39;X-Requested-With&#39;:&#39;XMLHttpRequest&#39;
&&&&&&&&&&&&&&&&}
&&&&&&&&res&=&postData(luckyUrl,param,header)这样的话理论上就没啥问题了,事实上其实也没啥问题。抽奖动作完成后我们是需要判断状态的,返回的res是一个json串,其中code为100000时为成功,为90114时是今天抽奖达到上限,其他值同样是失败,所以:hbRes=json.loads(res)
if&hbRes["code"]==&#39;;:&#今天红包已经抢完
&&&&&&&&print&u"---------已达上限---------"
&&&&&&&&print&&"----------......----------"
&&&&&&&&log(&#39;lucky&#39;,str(id)+&#39;---&#39;+str(hbRes["code"])+&#39;---&#39;+hbRes["data"]["title"])
&&&&&&&&exit(0)
elif&hbRes["code"]==&#39;;:#成功
&&&&&&&&print&u"---------恭喜发财---------"
&&&&&&&&print&&"----------......----------"
&&&&&&&&log(&#39;success&#39;,str(id)+&#39;---&#39;+res)
&&&&&&&&exit(0)
if&hbRes["data"]&and&hbRes["data"]["title"]:
&&&&&&&&print&hbRes["data"]["title"]
&&&&&&&&print&&"----------......----------"
&&&&&&&&log(&#39;lucky&#39;,str(id)+&#39;---&#39;+str(hbRes["code"])+&#39;---&#39;+hbRes["data"]["title"])
&&&&&&&&print&u"---------请求错误---------"
&&&&&&&&print&&"----------......----------"
&&&&&&&&log(&#39;lucky&#39;,str(id)+&#39;---&#39;+res)其中log也是我自定义的一个函数,用来记录日志用的:def&log(type,text):
&&&&&&&&fp&=&open(type+&#39;.txt&#39;,&#39;a&#39;)
&&&&&&&&fp.write(text)
&&&&&&&&fp.write(&#39;\r\n&#39;)
&&&&&&&&fp.close()0×04 爬取红包列表单个红包领取动作测试成功后,就是我们程序的核心大招模块了——爬取红包列表,爬取红包列表的方法和入口应该有不少,比如各种微博搜索关键字啥啥的,不过我这里用最简单的方法:爬取红包榜单。在红包活动的首页()通过各种点更多,全部可以观察到,虽然列表连接很多,但可以归纳为两类(最有钱红包榜除外):主题和排行榜。继续召唤F12,分析这两种页面的格式,首先是主题形式的列表,比如:可以看到红包的信息都是在一个类名为info_wrap的div中,那么我们只要活动这个页面的源码,然后把infowrap全抓出来,再简单处理下就可以得到这个页面的红包列表了,这里需要用到一些正则:def&getThemeList(url,p):#主题红包
&&&&&&&&print&&u"---------第"+str(p)+"页---------"
&&&&&&&&print&&"----------......----------"
&&&&&&&&html=getData(url+&#39;?p=&#39;+str(p))
&&&&&&&&pile(r&#39;(.+?)&#39;,re.DOTALL)&#h获取所有info_wrap的正则
&&&&&&&&pile(r&#39;.+(.+).+(.+).+(.+).+href="(.+)"&class="btn"&#39;,re.DOTALL)&#获取红包信息
&&&&&&&&List=pWrap.findall(html,re.DOTALL)
&&&&&&&&n=len(List)
&&&&&&&&if&n==0:
&&&&&&&&&&&&&&&&return
&&&&&&&&for&i&in&range(n):&#遍历所有info_wrap的div
&&&&&&&&&&&&&&&&s=pInfo.match(List[i])&#取得红包信息
&&&&&&&&&&&&&&&&info=list(s.groups(0))
&&&&&&&&&&&&&&&&info[0]=float(info[0].replace(&#39;\xcd\xf2&#39;,&#39;0000&#39;))&#现金,万->0000
&&&&&&&&&&&&&&&&try:
&&&&&&&&&&&&&&&&&&&&&&&&info[1]=float(info[1].replace(&#39;\xcd\xf2&#39;,&#39;0000&#39;))&#礼品价值
&&&&&&&&&&&&&&&&except&Exception,&e:
&&&&&&&&&&&&&&&&&&&&&&&&info[1]=float(info[1].replace(&#39;\xd2\xda&#39;,&#39;;))&#礼品价值
&&&&&&&&&&&&&&&&info[2]=float(info[2].replace(&#39;\xcd\xf2&#39;,&#39;0000&#39;))&#已发送
&&&&&&&&&&&&&&&&if&info[2]==0:
&&&&&&&&&&&&&&&&&&&&&&&&info[2]=1&#防止除数为0
&&&&&&&&&&&&&&&&if&info[1]==0:
&&&&&&&&&&&&&&&&&&&&&&&&info[1]=1&#防止除数为0
&&&&&&&&&&&&&&&&info.append(info[0]/(info[2]+info[1]))&#红包价值,现金/(领取人数+奖品价值)
&&&&&&&&&&&&&&&&#&if&info[0]/(info[2]+info[1])>100:
&&&&&&&&&&&&&&&&#&&print&url
&&&&&&&&&&&&&&&&luckyList.append(info)
&&&&&&&&if&&#39;class="page"&#39;&in&html:#存在下一页
&&&&&&&&&&&&&&&&p=p+1
&&&&&&&&&&&&&&&&getThemeList(url,p)&#递归调用自己爬取下一页话说正则好难,学了好久才写出来这么两句。还有这里的info中append进去了一个info[4],是我想的一个大概判断红包价值的算法,为什么要这么做呢,因为红包很多但是我们只能抽四次啊,在茫茫包海中,我们必须要找到最有价值的红包然后抽丫的,这里有三个数据可供参考:现金价值、礼品价值和领取人数,很显然如果现金很少领取人数很多或者奖品价值超高(有的甚至丧心病狂以亿为单位),那么就是不值得去抢的,所以我憋了半天终于憋出来一个衡量红包权重的算法:红包价值=现金/(领取人数+奖品价值)。排行榜页面原理一样,找到关键的标签,正则匹配出来。def&getTopList(url,daily,p):#排行榜红包
&&&&&&&&print&&u"---------第"+str(p)+"页---------"
&&&&&&&&print&&"----------......----------"
&&&&&&&&html=getData(url+&#39;?daily=&#39;+str(daily)+&#39;&p=&#39;+str(p))
&&&&&&&&pile(r&#39;(.+?)&#39;,re.DOTALL)&#h获取所有list_info的正则
&&&&&&&&pile(r&#39;.+(.+).+(.+).+(.+).+href="(.+)"&class="btn&rob_btn"&#39;,re.DOTALL)&#获取红包信息
&&&&&&&&List=pWrap.findall(html,re.DOTALL)
&&&&&&&&n=len(List)
&&&&&&&&if&n==0:
&&&&&&&&&&&&&&&&return
&&&&&&&&for&i&in&range(n):&#遍历所有info_wrap的div
&&&&&&&&&&&&&&&&s=pInfo.match(List[i])&#取得红包信息
&&&&&&&&&&&&&&&&topinfo=list(s.groups(0))
&&&&&&&&&&&&&&&&info=list(topinfo)
&&&&&&&&&&&&&&&&info[0]=topinfo[1].replace(&#39;\xd4\xaa&#39;,&#39;&#39;)&#元->&#39;&#39;
&&&&&&&&&&&&&&&&info[0]=float(info[0].replace(&#39;\xcd\xf2&#39;,&#39;0000&#39;))&#现金,万->0000
&&&&&&&&&&&&&&&&info[1]=topinfo[2].replace(&#39;\xd4\xaa&#39;,&#39;&#39;)&#元->&#39;&#39;
&&&&&&&&&&&&&&&&try:
&&&&&&&&&&&&&&&&&&&&&&&&info[1]=float(info[1].replace(&#39;\xcd\xf2&#39;,&#39;0000&#39;))&#礼品价值
&&&&&&&&&&&&&&&&except&Exception,&e:
&&&&&&&&&&&&&&&&&&&&&&&&info[1]=float(info[1].replace(&#39;\xd2\xda&#39;,&#39;;))&#礼品价值
&&&&&&&&&&&&&&&&info[2]=topinfo[0].replace(&#39;\xb8\xf6&#39;,&#39;&#39;)&#个->&#39;&#39;
&&&&&&&&&&&&&&&&info[2]=float(info[2].replace(&#39;\xcd\xf2&#39;,&#39;0000&#39;))&#已发送
&&&&&&&&&&&&&&&&if&info[2]==0:
&&&&&&&&&&&&&&&&&&&&&&&&info[2]=1&#防止除数为0
&&&&&&&&&&&&&&&&if&info[1]==0:
&&&&&&&&&&&&&&&&&&&&&&&&info[1]=1&#防止除数为0
&&&&&&&&&&&&&&&&info.append(info[0]/(info[2]+info[1]))&#红包价值,现金/(领取人数+礼品价值)
&&&&&&&&&&&&&&&&#&if&info[0]/(info[2]+info[1])>100:
&&&&&&&&&&&&&&&&&&&&&&&&#&&print&url
&&&&&&&&&&&&&&&&luckyList.append(info)
&&&&&&&&if&&#39;class="page"&#39;&in&html:#存在下一页
&&&&&&&&&&&&&&&&p=p+1
&&&&&&&&&&&&&&&&getTopList(url,daily,p)&#递归调用自己爬取下一页好,现在两中专题页的列表我们都可以顺利爬取了,接下来就是要得到列表的列表,也就是所有这些列表地址的集合,然后挨个去抓:def&getList():
&&&&&&&&print&u"---------查找目标---------"
&&&&&&&&print&&"----------......----------"
&&&&&&&&themeUrl={&#主题列表
&&&&&&&&&&&&&&&&&#39;theme&#39;:&#39;/hongbao/theme&#39;,
&&&&&&&&&&&&&&&&&#39;pinpai&#39;:&#39;/hongbao/special_pinpai&#39;,
&&&&&&&&&&&&&&&&&#39;daka&#39;:&#39;/hongbao/special_daka&#39;,
&&&&&&&&&&&&&&&&&#39;youxuan&#39;:&#39;/hongbao/special_youxuan&#39;,
&&&&&&&&&&&&&&&&&#39;qiye&#39;:&#39;/hongbao/special_qiye&#39;,
&&&&&&&&&&&&&&&&&#39;quyu&#39;:&#39;/hongbao/special_quyu&#39;,
&&&&&&&&&&&&&&&&&#39;meiti&#39;:&#39;/hongbao/special_meiti&#39;,
&&&&&&&&&&&&&&&&&#39;hezuo&#39;:&#39;/hongbao/special_hezuo&#39;
&&&&&&&&&&&&&&&&}
&&&&&&&&topUrl={&#排行榜列表
&&&&&&&&&&&&&&&&&#39;mostmoney&#39;:&#39;/hongbao/top_mostmoney&#39;,
&&&&&&&&&&&&&&&&&#39;mostsend&#39;:&#39;/hongbao/top_mostsend&#39;,
&&&&&&&&&&&&&&&&&#39;mostsenddaka&#39;:&#39;/hongbao/top_mostsenddaka&#39;,
&&&&&&&&&&&&&&&&&#39;mostsendpartner&#39;:&#39;/hongbao/top_mostsendpartner&#39;,
&&&&&&&&&&&&&&&&&#39;cate&#39;:&#39;/hongbao/cate?type=&#39;,
&&&&&&&&&&&&&&&&&#39;clothes&#39;:&#39;/hongbao/cate?type=clothes&#39;,
&&&&&&&&&&&&&&&&&#39;beauty&#39;:&#39;/hongbao/cate?type=beauty&#39;,
&&&&&&&&&&&&&&&&&#39;fast&#39;:&#39;/hongbao/cate?type=fast&#39;,
&&&&&&&&&&&&&&&&&#39;life&#39;:&#39;/hongbao/cate?type=life&#39;,
&&&&&&&&&&&&&&&&&#39;digital&#39;:&#39;/hongbao/cate?type=digital&#39;,
&&&&&&&&&&&&&&&&&#39;other&#39;:&#39;/hongbao/cate?type=other&#39;
&&&&&&&&&&&&&&&&}
&&&&&&&&for&(theme,url)&in&themeUrl.items():
&&&&&&&&&&&&&&&&print&"----------"+theme+"----------"
&&&&&&&&&&&&&&&&print&&url
&&&&&&&&&&&&&&&&print&&"----------......----------"
&&&&&&&&&&&&&&&&getThemeList(url,1)
&&&&&&&&for&(top,url)&in&topUrl.items():
&&&&&&&&&&&&&&&&print&"----------"+top+"----------"
&&&&&&&&&&&&&&&&print&&url
&&&&&&&&&&&&&&&&print&&"----------......----------"
&&&&&&&&&&&&&&&&getTopList(url,0,1)&
&&&&&&&&&&&&&&&&getTopList(url,1,1)0×05 判断红包可用性这个是比较简单的,首先在源码里搜一下关键字看看有没有抢红包按钮,然后再到领取排行里面看看最高纪录是多少,要是最多的才领那么几块钱的话就再见吧……其中查看领取记录的地址为/aj_hongbao/detailmore?page=1&type=2&_t=0&__rnd=5&uid=红包iddef&checkValue(id):
&&&&&&&&infoUrl=&#39;/hongbao/&#39;+str(id)
&&&&&&&&html=getData(infoUrl)
&&&&&&&&if&&#39;action-type="lottery"&#39;&in&&html&or&True:&#存在抢红包按钮
&&&&&&&&&&&&&&&&logUrl="/aj_hongbao/detailmore?page=1&type=2&_t=0&__rnd=5&uid="+id&#查看排行榜数据
&&&&&&&&&&&&&&&&param={}
&&&&&&&&&&&&&&&&header=&{
&&&&&&&&&&&&&&&&&&&&&&&&&#39;Cache-Control&#39;:&#39;no-cache&#39;,
&&&&&&&&&&&&&&&&&&&&&&&&&#39;Content-Type&#39;:&#39;application/x-www-form-urlencoded&#39;,
&&&&&&&&&&&&&&&&&&&&&&&&&#39;Pragma&#39;:&#39;no-cache&#39;,
&&&&&&&&&&&&&&&&&&&&&&&&&#39;Referer&#39;:&#39;/hongbao/detail?uid=&#39;+str(id),
&&&&&&&&&&&&&&&&&&&&&&&&&#39;User-Agent&#39;:&#39;Mozilla/5.0&(Windows&NT&6.1;&WOW64)&AppleWebKit/537.36&(KHTML,&like&Gecko)&Chrome/33.0.&BIDUBrowser/6.x&Safari/537.36&#39;,
&&&&&&&&&&&&&&&&&&&&&&&&&#39;X-Requested-With&#39;:&#39;XMLHttpRequest&#39;
&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&res&=&postData(logUrl,param,header)
&&&&&&&&&&&&&&&&pile(r&#39;(\d+?.+?)\xd4\xaa&#39;,re.DOTALL)&#h获取所有list_info的正则
&&&&&&&&&&&&&&&&luckyLog=pMoney.findall(html,re.DOTALL)
&&&&&&&&&&&&&&&&if&len(luckyLog)==0:
&&&&&&&&&&&&&&&&&&&&&&&&maxMoney=0
&&&&&&&&&&&&&&&&else:
&&&&&&&&&&&&&&&&&&&&&&&&maxMoney=float(luckyLog[0])
&&&&&&&&&&&&&&&&if&maxMoney<&lowest:&#记录中最大红包小于设定值
&&&&&&&&&&&&&&&&&&&&&&&&return&False
&&&&&&&&else:
&&&&&&&&&&&&&&&&print&u"---------手慢一步---------"
&&&&&&&&&&&&&&&&print&&"----------......----------"
&&&&&&&&&&&&&&&&return&False
&&&&&&&&return&True0×06 收尾工作主要的模块都已经搞定,现在需要将所有的步骤串联起来:def&start(username,password,low,fromFile):
&&&&&&&&gl=False
&&&&&&&&lowest=low
&&&&&&&&login(username&,&password)
&&&&&&&&if&fromfile==&#39;y&#39;:
&&&&&&&&&&&&&&&&if&os.path.exists(&#39;luckyList.txt&#39;):
&&&&&&&&&&&&&&&&&&&&&&&&try:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&f&=&file(&#39;luckyList.txt&#39;)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&newList&=&[]&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&newList&=&p.load(f)
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&print&u&#39;---------装载列表---------&#39;
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&print&&"----------......----------"
&&&&&&&&&&&&&&&&&&&&&&&&except&Exception,&e:
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&print&u&#39;解析本地列表失败,抓取在线页面。&#39;
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&print&&"----------......----------"
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&gl=True
&&&&&&&&&&&&&&&&else:
&&&&&&&&&&&&&&&&&&&&&&&&print&u&#39;本地不存在luckyList.txt,抓取在线页面。&#39;
&&&&&&&&&&&&&&&&&&&&&&&&print&&"----------......----------"
&&&&&&&&&&&&&&&&&&&&&&&&gl=True
&&&&&&&&if&gl==True:
&&&&&&&&&&&&&&&&getList()
&&&&&&&&&&&&&&&&from&operator&import&itemgetter
&&&&&&&&&&&&&&&&newList=sorted(luckyList,&key=itemgetter(4),reverse=True)
&&&&&&&&&&&&&&&&f&=&file(&#39;luckyList.txt&#39;,&&#39;w&#39;)&&
&&&&&&&&&&&&&&&&p.dump(newList,&f)&#把抓到的列表存到文件里,下次就不用再抓了
&&&&&&&&&&&&&&&&f.close()&
&&&&&&&&for&lucky&in&newList:
&&&&&&&&&&&&&&&&if&not&&#39;&#39;&in&lucky[3]:&#不是红包
&&&&&&&&&&&&&&&&&&&&&&&&continue
&&&&&&&&&&&&&&&&print&lucky[3]
&&&&&&&&&&&&&&&&id=re.findall(r&#39;(\w*[0-9]+)\w*&#39;,lucky[3])
&&&&&&&&&&&&&&&&getLucky(id[0])因为每次测试的时候都要重复爬取红包列表,很麻烦,所以加了段将完整列表dump到文件的代码,这样以后就可以读本地列表然后抢红包了,构造完start模块后,写一个入口程序把微博账号传过去就OK了:if&__name__&==&"__main__":&&
&&&&&&&&print&u"------------------微博红包助手------------------"
&&&&&&&&print&&"---------------------v0.0.1---------------------"
&&&&&&&&print&&u"-------------by&@无所不能的魂大人----------------"
&&&&&&&&print&&"-------------------------------------------------"
&&&&&&&&try:
&&&&&&&&&&&&&&&&uname=raw_input(u"请输入微博账号:&".decode(&#39;utf-8&#39;).encode(&#39;gbk&#39;))
&&&&&&&&&&&&&&&&pwd=raw_input(u"请输入微博密码:&".decode(&#39;utf-8&#39;).encode(&#39;gbk&#39;))
&&&&&&&&&&&&&&&&low=int(raw_input(u"红包领取最高现金大于n时参与:&".decode(&#39;utf-8&#39;).encode(&#39;gbk&#39;)))
&&&&&&&&&&&&&&&&fromfile=raw_input(u"是否使用luckyList.txt中红包列表:(y/n)&".decode(&#39;utf-8&#39;).encode(&#39;gbk&#39;))
&&&&&&&&except&Exception,&e:
&&&&&&&&&&&&&&&&print&u"参数错误"
&&&&&&&&&&&&&&&&print&&"----------......----------"
&&&&&&&&&&&&&&&&print&e
&&&&&&&&&&&&&&&&exit(0)
&&&&&&&&print&u"---------程序开始---------"
&&&&&&&&print&&"----------......----------"
&&&&&&&&start(uname,pwd,low,fromfile)
&&&&&&&&print&u"---------程序结束---------"
&&&&&&&&print&&"----------......----------"
&&&&&&&&os.system(&#39;pause&#39;)0×07 走你!基本的爬虫骨架已经基本可以完成了,其实这个爬虫的很多细节上还是有很大发挥空间的,比如改装成支持批量登录的,比如优化下红包价值算法,代码本身应该也有很多地方可以优化的,不过以我的能力估计也就能搞到这了。最后程序的结果大家都看到了,我写了几百行代码,几千字的文章,辛辛苦苦换来的只是一组双色球,尼玛坑爹啊,怎么会是双色球呢!!!(旁白:作者越说越激动,居然哭了起来,周围人纷纷劝说:兄弟,不至于的,不就是个微博红包么,昨天手都撸酸了也没摇出个微信红包。)唉,其实我不是哭这个,我难过的是我已经二十多岁了,还在做写程序抓微博红包这么无聊的事情,这根本不是我想要的人生啊!源码下载:作者/idf实验室(企业帐号)
微信扫一扫
订阅每日移动开发及APP推广热点资讯公众号:CocoaChina
您还没有登录!请或
点击量13553点击量12799点击量12306点击量7671点击量7620点击量6186点击量5253点击量4771点击量4503
&2016 Chukong Technologies,Inc.
京公网安备89

我要回帖

更多关于 设置抢红包尾数的软件 的文章

 

随机推荐