【Lib】[小实验]自制个双色球程序,助力走上人生巅峰吧

最近我在买双色球。
期待是有的,更多的是给自己攒RP,而且不是还有一部分发展福利事业么。

本来就是随便买的,所以每次都是机选4注。
买了几次我发现,机选还挺简单的,没啥逻辑,那为啥我不自己搞个程序,自己机选呢?

好的,说干就干。

程序逻辑

  • 使用random模块,对33个白球16个蓝球进行随机取值;
  • 白球取值过程,重复6次;需注意判断random出来的值,是否与前几次重复。
  • 6白球1蓝球一组,生成一注。生成17注。
  • 在17注中,在random出来4注,作为最终的机选。
    (为啥先出来17,再选4呢?是因为好玩吧,lucky17里再lucky4。)
  • 发送给企业微信的webhook,然后企业微信生成消息。

程序实现机选

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import random, json, certifi, urllib3

def blueball():
bball = random.randint(1,16)
return bball

def redballs():
rballs = []
for i in range(6):
rball = random.randint(1,33)
while rball in rballs:
rball = random.randint(1,33)
rballs.append(rball)
rballs.sort()
return rballs

def main():
altballs = []
for i in range(17):
balls = [redballs(), blueball()]
altballs.append(balls)
luckyfour = random.sample(altballs, 4)

# 发送给企业微信的webhook显示。
http = urllib3.PoolManager(cert_reqs='CERT_REQUIRED', ca_certs=certifi.where())
# 李有财 hook_addr
hook_addr = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=lalalalalalalalalala" # my robot
# 传输webhook图文消息
data = {
"msgtype": "markdown",
"markdown": {
"content": "**双色球**\n\
>**第①注: <font color=\"comment\">%s</font>- <font color=\"warning\">%s</font>**\n\
>**第②注: <font color=\"comment\">%s</font>- <font color=\"warning\">%s</font>**\n\
>**第③注: <font color=\"comment\">%s</font>- <font color=\"warning\">%s</font>**\n\
>**第④注: <font color=\"comment\">%s</font>- <font color=\"warning\">%s</font>**\n"
%(luckyfour[0][0], luckyfour[0][1], luckyfour[1][0], luckyfour[1][1],
luckyfour[2][0], luckyfour[2][1], luckyfour[3][0], luckyfour[3][1])
}
}
data = json.dumps(data).encode()
response_hook = http.request('POST', hook_addr, body=data)


if __name__ == "__main__":
main()

优化改善

为了方便我每次对奖方便,在程序里爬取下上期的开奖结果。
爬取500彩票网的结果界面。

1
2
3
4
5
6
7
8
def last_result():
addr = 'http://kaijiang.500.com/shtml/ssq/'
http = urllib3.PoolManager(cert_reqs='CERT_REQUIRED', ca_certs=certifi.where())
response = http.request('GET', addr)
tree = html.fromstring(response.data)
r = tree.xpath('//div[@class="ball_box01"]//li[@class="ball_red"]//text()')
b = tree.xpath('//div[@class="ball_box01"]//li[@class="ball_blue"]//text()')
return r, b

同时在主函数里加上上期结果的发送:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def main():
***
last_r, last_b = last_result()
***
data = {
"msgtype": "markdown",
"markdown": {
"content": "**双色球**\n\
%s, %s\n\
>**第①注: <font color=\"comment\">%s</font>- <font color=\"warning\">%s</font>**\n\
>**第②注: <font color=\"comment\">%s</font>- <font color=\"warning\">%s</font>**\n\
>**第③注: <font color=\"comment\">%s</font>- <font color=\"warning\">%s</font>**\n\
>**第④注: <font color=\"comment\">%s</font>- <font color=\"warning\">%s</font>**\n"
%(last_r, last_b, luckyfour[0][0], luckyfour[0][1], luckyfour[1][0], luckyfour[1][1],
luckyfour[2][0], luckyfour[2][1], luckyfour[3][0], luckyfour[3][1])
}
}
***

实现效果


上期结果就没做太多的修饰了,觉得麻烦也没必要。

最后在电脑上设置个定时job,每周一/三/五,发给我自己。

以后去彩票站就下注lucky4好啦。
感觉自己好像就要走上人生巅峰了呢。哈哈哈哈哈~~