我用Python爬取了14年所有的福彩3D信息,彩民们,只能帮你们到这了

开发 后端
彩票预测是否靠谱?彩票预测也分人而异,江湖上骗术很多,有些甚至会误以为彩票预测的准确度可以很高,这些操盘手法,让不知原理的彩民心甘情愿地掏钱买料。

前两天,在网上看到一个有意思的问题:彩票预测靠谱么?为什么还有那么多的人相信彩票预测?

暂且不说,彩票预测是否靠谱?彩票预测也分人而异,江湖上骗术很多,有些甚至会误以为彩票预测的准确度可以很高,这些操盘手法,让不知原理的彩民心甘情愿地掏钱买料。

[[242204]]

在彩票预测上,也有正儿八经去研究“规律” 的,不外乎三个“派别”:数据派、图形派、公式派。还有一派不列入:字谜字画派,可纳入蛇精病行列。

究竟哪一派预测的靠谱准确呢?不懂,因为我几乎不买彩票(买也是玩玩,娱乐娱乐),也不去研究。但不管哪一派总得有数据可研究,今天我只负责帮大家如何获取3D彩票自创办以来,所有的数据(中奖号码、中奖注数、销售额以及返奖比例等)

在爬取一些简单的(没有反爬机制的)静态网页时,一般采取的策略是:选中目标(所谓的url链接),观察结构(链接结构,网页结构),构思动手(选用什么HTML下载器,解析器等)。在爬虫过程中,都会涉及到三种利器:

HTML下载器:下载HTML网页

HTML解析器:解析出有效数据

数据存储器:将有效数据通过文件或者数据库的形式存储起来

今天,我们将利用requests库和BeautifulSoup模块来抓取中彩网页福彩3D相关的信息,并将其保存到Excel表格中。

在开始前,先分析看看目标网页的结构:

可以发现,目标网页的URL 

http://kaijiang.zhcw.com/zhcw/html/3d/list_2.html,

每次变化一处:list_x后面的数字,其代表第几页。

然后,观察其网页结构,也很简单,可以看到一期的彩票信息对应的源代码是一个tr节点,我们可以用BeautifulSoup库来提取这里面的一些信息。

整体思路是:若要获取福彩3D创办14年以来所有的信息(一共246页),只需要分开请求246次,这样获取不同的页面之后,再利用BeautifulSoup库提取到相关信息,利用xlrd库将数据写入Excel中,就可以获取到福彩3D所有的信息,结果如下图:

(一共将近5000条数据)

详情代码如下:

  1. import requests 
  2. from bs4 import BeautifulSoup 
  3. import xlwt 
  4. import time 
  5.  
  6. #获取第一页的内容 
  7. def get_one_page(url): 
  8.     headers = { 
  9.         'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36' 
  10.     } 
  11.     response = requests.get(url,headers=headers) 
  12.     if response.status_code == 200: 
  13.         return response.text 
  14.     return None 
  15.  
  16. #解析第一页内容,数据结构化 
  17. def parse_one_page(html): 
  18.  
  19.     soup = BeautifulSoup(html,'lxml'
  20.     i = 0 
  21.     for item in soup.select('tr')[2:-1]: 
  22.  
  23.         yield{ 
  24.             'time':item.select('td')[i].text, 
  25.             'issue':item.select('td')[i+1].text, 
  26.             'digits':item.select('td em')[0].text, 
  27.             'ten_digits':item.select('td em')[1].text, 
  28.             'hundred_digits':item.select('td em')[2].text, 
  29.             'single_selection':item.select('td')[i+3].text, 
  30.             'group_selection_3':item.select('td')[i+4].text, 
  31.             'group_selection_6':item.select('td')[i+5].text, 
  32.             'sales':item.select('td')[i+6].text, 
  33.             'return_rates':item.select('td')[i+7].text 
  34.         } 
  35.  
  36. #将数据写入Excel表格中 
  37. def write_to_excel(): 
  38.     f = xlwt.Workbook()                              
  39.     sheet1 = f.add_sheet('3D',cell_overwrite_ok=True
  40.     row0 = ["开奖日期","期号","个位数","十位数","百位数","单数","组选3","组选6","销售额","返奖比例"
  41.     #写入第一行 
  42.     for j in range(0,len(row0)): 
  43.         sheet1.write(0,j,row0[j]) 
  44.      
  45.     #依次爬取每一页内容的每一期信息,并将其依次写入Excel 
  46.     i=0 
  47.     for k in range(1,247): 
  48.         url = 'http://kaijiang.zhcw.com/zhcw/html/3d/list_%s.html' %(str(k)) 
  49.         html = get_one_page(url) 
  50.         print('正在保存第%d页。'%k) 
  51.         #写入每一期的信息 
  52.         for item in parse_one_page(html): 
  53.             sheet1.write(i+1,0,item['time']) 
  54.             sheet1.write(i+1,1,item['issue']) 
  55.             sheet1.write(i+1,2,item['digits']) 
  56.             sheet1.write(i+1,3,item['ten_digits']) 
  57.             sheet1.write(i+1,4,item['hundred_digits']) 
  58.             sheet1.write(i+1,5,item['single_selection']) 
  59.             sheet1.write(i+1,6,item['group_selection_3']) 
  60.             sheet1.write(i+1,7,item['group_selection_6']) 
  61.             sheet1.write(i+1,8,item['sales']) 
  62.             sheet1.write(i+1,9,item['return_rates']) 
  63.             i+=1 
  64.  
  65.     f.save('3D.xls'
  66.  
  67. def main(): 
  68.     write_to_excel() 
  69.  
  70. if __name__ == '__main__'
  71.     main() 

到此,关于14年的福彩3D信息都可以爬取下来,至于如何预测?下一期的彩票趋势如何?不懂也不会,接下来是否中奖,就靠你们了。彩民们,我只能帮你们到这了!

最后结尾,关于彩票预测究竟准不准?我不说太多的理论分析,我只提出两个问题:

命题1:以双色球为例,下一期双色球号码,1,2,3,4,5,6,7 和 3,4,8,11,22,29,7 这两组号码的中奖概率如何?谁高谁低还是都一样?

命题2:第二个问题更简单。假设你已经投了9次硬币,结果都是正面。现在你要投第10次,请问是正面的概率是多少?

如果你还要问我,彩票有规律可循吗?在我看来,彩票规律就是没有规律(不信,你去分析分析14年以来的所有数据),以人类的计算水平,即使有的话也计算不出来的。彩票是娱乐,是一个运气的游戏,一个人即使在彩票上赚到了钱,运气好,也不代表使用的方法就可以提高彩票中奖率。任何打着提高中奖率的期号进行的盈利行为,即使出发点是善意的,也会最终走向错误。

责任编辑:武晓燕 来源: 数据与算法之美
相关推荐

2022-09-07 12:00:26

Python3D游戏

2018-09-27 10:59:28

信锐技术

2010-05-21 10:13:55

宽带网络建设

2010-02-02 16:30:46

Fedora 10

2020-07-14 10:19:29

Python 开发运维

2022-08-30 08:23:52

Python房源数据

2021-05-10 10:42:42

谷歌隐私标签网络安全

2017-09-17 10:05:20

Python景点国庆

2017-11-10 14:12:35

2021-09-16 07:52:18

SwiftUScroll效果

2011-08-08 09:42:41

OGRE iOS

2023-11-24 09:56:19

自动驾驶训练

2020-06-01 13:49:16

Python代码3D地图

2022-08-17 11:20:23

Python微信

2018-10-29 11:22:17

微软应用Windows

2017-07-12 10:25:17

Python微信itchat 包

2012-11-26 12:51:44

木材3D打

2017-08-30 12:17:02

Python王者荣耀套路

2011-10-06 13:30:45

宏碁投影仪

2017-07-17 09:27:09

Python 爬虫编程
点赞
收藏

51CTO技术栈公众号