提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
@
目录
- 前言
- 一、用python抓取每天的开奖数据
- 二、接口开发
- 总结
前言
公司楼下恰巧有个中国福利彩票中心,跟同事每天中午吃完饭都会去买两注,在支持中国公益事业的同时,作着一夜暴富的梦想;概率什么的咱都懂,就是相信自己会暴富~~
自己按照生日、幸运数字等等,选了一注心仪的号码然后定投;定投一段时间以后,自然而然的想到了 这注双色球号码在历史开奖中是否中过奖;如何查询选择的双色球号码在历史期数中是否中过奖;于是赶紧百度一下,看看怎么查,没有就自己做一个呀;
果然搜到了一个 china-ssq 电脑端、手机端浏览器都可访问,截图如下:
看了下网站的大体功能,提供双色球号码是否中过奖、大乐透号码是否中过奖,历史重复开奖记录等功能。网站介绍如下:
- 历史中奖查询:查询您心仪的号码(单式)是否已经在历史期数中开过奖,以供您参考
- 复式历史中奖查询:查询您所选的号码(复式)在历史开奖中,红球重复n球及以上的纪录
- 历史重复开奖记录查询:检索所有的历史开奖记录,查看是否有重复的开奖号码
- 中奖通知:在本站收藏您的幸运号码,我们将实时监控幸运号码的中奖情况,并第一时间通知到您
具体不知道这个网站开了多久,作者是否已经盈利了。不管三七二十一,我也决定用python实现一个。
一、用python抓取每天的开奖数据
代码如下(示例):
import requests
from bs4 import BeautifulSoup
import osdef get_data(url):response = requests.get(url)return response.textdef parse_data(html):soup = BeautifulSoup(html, 'html.parser')list = soup.select('div.ball_box01 ul li')ball = [li.string for li in list]return balldef write_to_csv(page, ball):with open('双色球开奖结果.csv', 'a', encoding='utf_8_sig') as f:f.write(f'第{page}期,{",".join(ball)}\n')def turn_page():url = "http://kaijiang.500.com/ssq.shtml"html = get_data(url)soup = BeautifulSoup(html, 'html.parser')pageList = soup.select("div.iSelectList a")for p in pageList:url = p['href'] # 提取链接page = p.string # 提取字符串download(url, page)def download(url, page):html = get_data(url)ball = parse_data(html)write_to_csv(page, ball)print(f"第{page}期开奖结果录入完成")def main():if os.path.exists('双色球开奖结果.csv'):os.remove('双色球开奖结果.csv')turn_page()if __name__ == '__main__':main()
二、接口开发
传参自己心仪的双色球号码,然后去所有期次中撞库
代码如下(示例):
@RequestMapping(value ="/duotoneLottery/query",method = RequestMethod.GET)public List<DuotoneLotteryHistory> getDuotoneLotteriesByList(@RequestParam(value = "blue", required = false) Integer blue,@RequestParam(value = "red") String red){long startTime = System.currentTimeMillis();logger.info("begin query, blue: " + blue + ", red: " + red);List<String> ballList = Arrays.asList(red.split(","));List<Integer> balls = ballList.stream().map(Integer::valueOf).collect(Collectors.toList());Collections.sort(balls);DuotoneLotteryHistory duotoneLotteryQO = new DuotoneLotteryHistory();duotoneLotteryQO.setRed1(balls.get(0));duotoneLotteryQO.setRed2(balls.get(1));duotoneLotteryQO.setRed3(balls.get(2));duotoneLotteryQO.setRed4(balls.get(3));duotoneLotteryQO.setRed5(balls.get(4));duotoneLotteryQO.setRed6(balls.get(5));duotoneLotteryQO.setBlue(blue);QueryWrapper<DuotoneLotteryHistory> wrapper = new QueryWrapper<>(duotoneLotteryQO);List<DuotoneLotteryHistory> duotoneLotteryHistories = duotoneLotteryHistoryService.list(wrapper);logger.info("result size: " + duotoneLotteryHistories.size());String totalTime = DateUtils.getFriendlyTimeDiff(startTime, System.currentTimeMillis());logger.info("end totalTime: " + totalTime);return duotoneLotteryHistories;}
总结
有了所有期次数据后,就可以进行数据分析挖掘,开发各种有意思的功能;
最后,希望大家支持中国公益彩票,祝各位早日中得大奖~实现财富自由!