>科技>>正文

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

原标题:用 Python 爬取了 14 年的福彩 3D 信息!彩民们,只能帮你们到这了

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

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

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

究竟哪一派预测的靠谱准确呢?不懂,因为我几乎不买彩票(买也是玩玩,娱乐娱乐),也不去研究。

但不管哪一派总得有数据可研究。本文就介绍如何获取3D彩票自创办以来所有的数据,包括中奖号码、中奖注数、销售额以及返奖比例等。

爬取网页信息

在爬取一些简单的、没有反爬机制的静态网页时,一般采取的策略是:选中目标(所谓的URL链接),观察结构(链接结构,网页结构),构思动手(选用什么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条数据)

详情代码如下:

import requests

from bs4 import BeautifulSoup

import xlwt

import time

#获取第一页的内容

defget_one_page(url):

headers = {

'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'

}

response = requests.get(url,headers=headers)

ifresponse.status_code == 200:

returnresponse.text

returnNone

#解析第一页内容,数据结构化

defparse_one_page(html):

soup = BeautifulSoup(html, 'lxml')

i = 0

foritem insoup.select( 'tr')[ 2:-1]:

yield{

'time':item.select( 'td')[i].text,

'issue':item.select( 'td')[i+ 1].text,

'digits':item.select( 'td em')[ 0].text,

'ten_digits':item.select( 'td em')[ 1].text,

'hundred_digits':item.select( 'td em')[ 2].text,

'single_selection':item.select( 'td')[i+ 3].text,

'group_selection_3':item.select( 'td')[i+ 4].text,

'group_selection_6':item.select( 'td')[i+ 5].text,

'sales':item.select( 'td')[i+ 6].text,

'return_rates':item.select( 'td')[i+ 7].text

}

#将数据写入Excel表格中

defwrite_to_excel():

f = xlwt.Workbook()

sheet1 = f.add_sheet( '3D',cell_overwrite_ok=True)

row 0= [ "开奖日期", "期号", "个位数", "十位数", "百位数", "单数", "组选3", "组选6", "销售额", "返奖比例"]

#写入第一行

forj inrange( 0,len(row 0)):

sheet1.write( 0,j,row 0[j])

#依次爬取每一页内容的每一期信息,并将其依次写入Excel

i= 0

fork inrange( 1, 247):

url = 'http://kaijiang.zhcw.com/zhcw/html/3d/list_%s.html'%(str(k))

html = get_one_page(url)

print( '正在保存第%d页。'%k)

#写入每一期的信息

foritem inparse_one_page(html):

sheet1.write(i+ 1, 0,item[ 'time'])

sheet1.write(i+ 1, 1,item[ 'issue'])

sheet1.write(i+ 1, 2,item[ 'digits'])

sheet1.write(i+ 1, 3,item[ 'ten_digits'])

sheet1.write(i+ 1, 4,item[ 'hundred_digits'])

sheet1.write(i+ 1, 5,item[ 'single_selection'])

sheet1.write(i+ 1, 6,item[ 'group_selection_3'])

sheet1.write(i+ 1, 7,item[ 'group_selection_6'])

sheet1.write(i+ 1, 8,item[ 'sales'])

sheet1.write(i+ 1, 9,item[ 'return_rates'])

i+= 1

f.save( '3D.xls')

defmain():

write_to_excel()

if__name_ _== '__main__':

main()

到此,关于14年的福彩3D信息都可以爬取下来了。

彩票预测准确性

那么具体该如何预测?下一期的彩票趋势如何?可惜的是我不懂也不会,接下来是否中奖,就靠你们了——彩民们,我只能帮你们到这了!

不过关于彩票预测究竟准不准?这里我提两个问题:

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

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

如果你还要问我,彩票有规律可循吗?在我看来,彩票规律就是没有规律(不信,你去分析分析14年以来的所有数据)。以人类的计算水平,即使有的话也计算不出来的。

彩票是娱乐,是一个运气的游戏,一个人即使在彩票上赚到了钱,运气好,也不代表使用的方法就可以提高彩票中奖率。任何打着提高中奖率的期号进行的盈利行为,即使出发点是善意的,也会最终走向错误。

XX彩票(尤其是黑彩)的实质,就是虚构一个不劳而获的人,去忽悠一群想不劳而获的人,最终养活一批真正不劳而获的人。

同理可证,币圈也是如此!

声明:本文为恋习Python投稿,版权归对方所有。

征稿啦返回搜狐,查看更多

责任编辑:

声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
阅读 ()
投诉
免费获取
今日搜狐热点
今日推荐