整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

利用python数据分析,获取双色球历史中奖信息!(

利用python数据分析,获取双色球历史中奖信息!(内含详细代码)

言:

毫无例外,基本上是所有人都有一颗中奖的心,不管是有钱的,还是没钱的!你们说对吗?

对于技术人员来说,通过技术分析,可以增加中奖几率,现使用python语言收集历史双色球中奖信息,之后进行预测分析。

万物皆可分析之--今天为大家带来的内容,是Python数据分析之获取双色球历史信息的方法。希望大家会喜欢!本次的代码数据还算凑合,可以参考参考。

说明:采用2016年5月15日获取的双色球数据为基础进行分析,总抽奖数1940次。

初级代码,有些内容比较繁琐,有更好的代码,大家可以分享。

#!/usr/bin/python
# -*- coding:UTF-8 -*-
#coding:utf-8
#author:levycui
#date:20160513
#Description:双色球信息收集
import urllib2
from bs4 import BeautifulSoup #采用BeautifulSoup
import os
import re
#伪装成浏览器登陆,获取网页源代码

 try:
 post=urllib2.urlopen(req)
 except urllib2.HTTPError,e:
 print e.code
 print e.reason
 return post.read()
#初始化url 双色球首页
url='http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html'
#===============================================================================

 else:
 return 0
#===============================================================================

 #初始化n
 n=0
 #将双色球数字信息写入num.txt文件
 fp=open("num.txt" ,"w")
 for div in em_list:
 emnum1=div.get_text()
 # print emnum1
 text=div.get_text()
 text=text.encode('utf-8')
 #print title
 n=n+1
 if n==7:
 text=text + "\n"
 n=0
 else:
 text=text + ","
 fp.write(str(text))
 fp.close()

 #将num.txt和date.txt文件进行整合写入hun.txt文件中
 #格式如下:
 #('2017-05-03', '09,12,24,28,29,30,02')
 #('2017-05-01', '06,08,13,14,22,27,10')
 #('2017-04-28', '03,08,13,14,15,30,04')
 #
 fp01=open("date.txt","r")
 a=[]
 for line01 in fp01:
 a.append(line01.strip('\n'))
 # print a

if __name__=="__main__":
 pageNum=getPageNum(url)
 print pageNum
 getpagetext=getText(url)
 print getpagetext

以上就是本文全部内容了!

最后,小编想说一句话:我是一名python开发工程师,整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习,面试宝典,面试宝典,面试宝典。想要这些资料的可以关注小编,并在后台私信小编:“07”即可领取。

爆竹声声辞旧岁,贺岁盈盈满乾坤。”街上大红灯笼越挂越多,家家户户购置年货越来越热闹,而由成都市人民政府主办,成都市商务局、成都市文化广电旅游局联合承办“过节耍成都·寻找最年味”评选活动也随着年味渐浓火热进行中。

此次评选由全市22个区(市)县择优推选出近百个年味活动,涵盖民俗节会、旅游节庆、美食购物、文化艺术等多种类别,邀请市民朋友和外地游客“过节耍成都”,感受成都年味。活动自开放网络投票环节一周以来,已累计收到约46万张投票,作为对广大网友的热情回馈,活动主办方也联动22个区(市)县送出系列年味大礼包,而今日首批中奖用户也正式揭晓,恭喜昵称为@维维哥、@孙昌辉、@哈尼等14位幸运用户获得此次年味礼包。

感受成都年味最直接的方式,那就是真正品尝一下“成都味”,此次由成都22个区(市)县送出的年味大礼包,也自然是以食用特产为主。蒲江县、新都区和金牛区相继提供桂花酥桃片、徽记瓜子儿、蒲江米花糖等系列地方特色美食,而简阳市、温江区则为大家准备了海底捞火锅底料及温江庭院火锅底料,让大家感受成都正宗“麻辣年味儿”。青城红茶、郫县豆瓣、原生态稻香米、优质豆腐乳……这些由都江堰市、崇州市、邛崃市、郫都区、大邑县、新津县等提供的地方优质产品,也定让大家在过年期间感受舌尖上的过年美味。此外,由彭州市、双流区提供的紫光檀书签、猫头鹰精致装饰件,以及龙泉驿区提供的蔚然花海、好秾人景区门票,则让大家得以感受更为多元而丰富的巴蜀年味与天府雅韵。

据了解,“寻找最年味”评选活动从1月15日开始至今,也获得了广大市民朋友的广泛关注与积极参与,拉票投票也是相当积极!截止今日(1月24日)下午2点,大邑县“2019年安仁民俗文化展演之庄园小姐出嫁”以68122票暂列榜首;温江区“第十五届成都国际美食节暨2018美食之都成都火锅文化月温江分会场至庭院火锅节”以59856票暂列第二;金牛区“国际商贸城首届‘迎春大庙会’”活动以45198票暂居第三;锦江区“‘文化传承·福慧传家’主题新春”活动、天府新区“十万‘猪’福,萌动南湖”活动、都江堰市“萌宝闹新年天天乐不停,灌县古城焕新春”活动、邛崃市“崃劲年货市集”活动、龙泉驿区“龙泉吾悦广场首届年货购物节”活动、都江堰市“2019年民俗闹春·城乡大拜年系列文化活动”、彭州市“关口棒棒会(丹景山庙会)”活动暂列第四至第十名。

点击下方链接,还可继续为心中的“最年味”活动投票打call!此次活动剩余大礼包将在接下来时间分3批次送出,下周获得区县年味儿大礼包的幸运儿可能就是你哦!

http://app.cdsb.com/cdsb_wxactivity/index.php/Vote/WVoteZuiSmell2019/index/id/149.html

附:中奖人名单

友情提示,请获奖者戳链接填写收件地址,大礼包包邮到家!

http://p68y33oym0yri1ue.mikecrm.com/u8gcejo

红星新闻记者 陈学志 实习生 苏星

天来写一个自动计算微博抽奖男女比例的代码,很早就应该发这篇了,只是不想蹭热点(才不是拖更)。

整个的过程大概分为三步:

S1:从抽奖公示页获取所有中奖者的微博ID

S2:由每个中奖者的微博ID进入其相应主页,获得需要的个人信息(性别、粉丝数、微博数等)

S3:对收集到的信息进行相应的汇总分析

接下来一步一步地进行就好了,没什么难点和需要注意的地方,权当做是一次很小的练手。

首先每次微博抽奖都会有一个公示链接。形如:http://event.weibo.com/yae/event/lottery/result?pageid=100140E1204222&id=3538105&f=weibo

其中pageid和id两个变量就可以定位一次抽奖。

中奖名单每页公示3个,当你点下一页的时候会以AJAX方式请求数据。

因此我们只需要请求第一页以后,获取获奖的总人数,然后循环分别获取其余AJAX请求。


由于链接和谐,所以私信小编007即可获取数十套PDF的获取方式!

将每个获奖人的ID放在一个列表里,每次append即可。

在这边有一点就是,我们必须要在登陆状态下访问才可以看到获奖情况,否则会跳转登录页。解决办法是带cookie访问。无脑加headers和cookies不会有问题。

def lottery(page, pageid, lid):
 cookies={# your cookies }
 headers={# copy the headers }
 params=(
 ('pageid', pageid), # 100140E1198435
 ('id', lid), # 3436763
 ('page', page), # 2
 ('prizeLevel', '1'),
 ('_t', '0'),
 ('__rnd', int(time.time() * 1000)), # 1542650067843
 )
 response=requests.get('https://event.weibo.com/yae/aj/event/lottery/result', headers=headers, params=params,
 cookies=cookies)
 return response.text

我们可以看到AJAX返回的内容是一个JSON,但是这个JSON内的数据却又没有那么的友好,并不是我们常见的直接给出了每个用户的数据字典,而是给了我们一个HTML标签包裹的代码块。也就是说需要进一步的解析,不过好在并不复杂,这里我选择自己比较熟悉的BS来做,别的解析方法也都可以。



运行代码,我们便可以得到所有中奖用户ID组成的一个列表了。

def result(pageid, lid):
 userid=[]
 jsonObj=json.loads(lottery('1', pageid, lid))
 html=jsonObj['data']['html']
 # print(html)
 bsObj=BeautifulSoup(html, 'lxml')
 # <span class='lottery_published_gray'>113</span>
 spans=bsObj.find_all('span', {'class': 'lottery_published_gray'})
 count=spans[-1].text
 n=int(count) // 3 + 1
 if n==1:
 dt=bsObj.find_all('dt')
 for each in dt:
 userid.append(each.find('a')['href'].split('/')[3])
 print(userid)
 else:
 for i in range(1, n + 1):
 jsonObj=json.loads(lottery(i, pageid, lid))
 html=jsonObj['data']['html']
 bsObj=BeautifulSoup(html, 'lxml')
 dt=bsObj.find_all('dt')
 for each in dt:
 userid.append(each.find('a')['href'].split('/')[3])
 print(userid)
 return userid

获取性别要进入到每个用户的个人信息页面。在这里我们选择请求手机版页面,没有太多杂乱的页面结构和广告,反爬也相对宽松。



还是跟刚才差不多,带cookies请求页面就好了。这边的结构很规范,用XPATH也可以,当然如果我们只取性别的话,正则也是够用的。其余的信息像是姓名、地区、生日、标签、简介等等,大家可以相应地自己实现。

def userInfo(uid):
 cookies={# your cookies}
 headers={# copy the headers}
 response=requests.get('https://weibo.cn/' + uid + '/info', headers=headers, cookies=cookies)
 h=response.text
 # print(h)
 pattern=re.compile(r'性别:(.)')
 sex=pattern.search(h).group(1)
 return sex

如此循环得到了所有用户的性别后,我们只需要统计列表中的男女比例就可以了。

# 大概在300次左右会出现请求失败。所以如果中间人数特别多的话,还是设置一下延时。

最后就是简单的数据分析。因为一来数据总量不大,二来我们不打算进行太深入的数据分析,在不考虑存储的情况下,我们直接使用了列表来存结果。如果要进一步分析,最好还是用字典(JSON)、CSV等方式进行持久化操作。既然是列表存储的话,我们可以直接用列表的count方法来计算出男女比例。大家也可以结合可视化方法来更直观地展示结果。

print(usersex.count('女'))
print(usersex.count('男'))

最终可以看一下两次抽奖的结果:

usersex1=['女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女',
 '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '男', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女',
 '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女',
 '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女',
 '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女',
 '女', '女', '女']
usersex2=['男', '女', '女', '男', '女', '男', '女', '女', '女', '男', '女', '女', '女', '女', '女', '女', '女', '男', '女', '男', '女', '男',
 '男', '女', '男', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '男', '女', '男', '男', '男', '女',
 '女', '男', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '女', '男', '女', '女', '男', '女', '女', '女', '女', '女',
 '女']

第一次抽奖113人中,有112人为女;第二次抽奖67人中,有51人为女。

今天的内容我也为大家录了一期视频讲解,大家可以点击原文跳转观看,比较适合零基础的同学学习~