python3 使用requests爬取 双色球所有中奖号码,并使用pandas+matplotlib 进行分析

首先需要写一个爬虫将双色球开奖数据抓下来,找到了这个网站
http://datachart.500.com/ssq/
默认只显示最近30期的中奖号码
这里写图片描述

找到网站的所有中奖号码接口,
http://datachart.500.com/ssq/history/newinc/history.php?start=00001&end=18081
用浏览器打开是这个样子的
这里写图片描述
中文乱码了,不过无所谓,我们只需要数字
接下来开始获取这些数据,代码如下

import requests
from lxml import etree
url = "http://datachart.500.com/ssq/history/newinc/history.php?start=00001&end=18081"
response = requests.get(url)
response = response.text
selector = etree.HTML(response)
for i in selector.xpath('//tr[@class="t_tr1"]'):
    datetime = i.xpath('td/text()')[0]
    red = i.xpath('td/text()')[1:7]
    blue = i.xpath('td/text()')[7]
    print(datetime,red,blue)

效果如下,成功获取到了中奖号码
这里写图片描述

接下来用到pandas进行数据分析,统计每一个号码出现的次数
我们首先将红球中奖号码和篮球中奖号码分别放入两个数组中,并且将它们转化为Series,代码如下

import requests
from lxml import etree
import matplotlib.pyplot as plt
from pandas import Series

url = "http://datachart.500.com/ssq/history/newinc/history.php?start=00001&end=18081"
response = requests.get(url)
response = response.text
selector = etree.HTML(response)
reds = []
blues = []
for i in selector.xpath('//tr[@class="t_tr1"]'):
    datetime = i.xpath('td/text()')[0]
    red = i.xpath('td/text()')[1:7]
    blue = i.xpath('td/text()')[7]
    for i in red:
        reds.append(i)
    blues.append(blue)

s_blues = Series(blues)
s_blues = s_blues.value_counts()
s_reds = Series(reds)
s_reds = s_reds.value_counts()
print(s_blues)

打印蓝色球测试,结果如下
这里写图片描述
左边是蓝球的号码,右边是出现的次数,红色球也同理,但是这样看起来还不够直观,我们使用matplotlib进行绘图
只需要这样一段代码

import matplotlib.pyplot as plt
labels = s_blues.index.tolist()
sizes = s_blues.values.tolist()
rect = plt.bar(range(len(sizes)) , sizes , tick_label = labels)
plt.show()

效果如下
这里写图片描述
这样就可以很直观的看出哪个号码出现的频率最高了,但是这样无法显示准确的出现次数,我们需要加一个方法来让它显示。

def autolabel(rects):
    for rect in rects:
        height = rect.get_height()
        plt.text(rect.get_x(), 1.02*height, "%s" % height)


labels = s_blues.index.tolist()
sizes = s_blues.values.tolist()
rect = plt.bar(range(len(sizes)) , sizes , tick_label = labels)
autolabel(rect)
plt.show()

效果如下图
这里写图片描述
这样就更加清晰了。红球的图如下,方法类似就不做赘述
这里写图片描述

总之,最后的结果是
中奖率最高的几个号码是

01 08 14 20 22 26 + 12

仅供参考,如果有人中奖请记得联系我。
完整的代码如下

import requests
from lxml import etree
import matplotlib.pyplot as plt
from pandas import Series

url = "http://datachart.500.com/ssq/history/newinc/history.php?start=00001&end=18081"
response = requests.get(url)
response = response.text
selector = etree.HTML(response)
reds = []
blues = []
for i in selector.xpath('//tr[@class="t_tr1"]'):
    datetime = i.xpath('td/text()')[0]
    red = i.xpath('td/text()')[1:7]
    blue = i.xpath('td/text()')[7]
    for i in red:
        reds.append(i)
    blues.append(blue)

s_blues = Series(blues)
s_blues = s_blues.value_counts()
s_reds = Series(reds)
s_reds = s_reds.value_counts()

def autolabel(rects):
    for rect in rects:
        height = rect.get_height()
        plt.text(rect.get_x(), 1.02*height, "%s" % height)


labels = s_blues.index.tolist()
sizes = s_blues.values.tolist()
rect = plt.bar(range(len(sizes)) , sizes , tick_label = labels)
autolabel(rect)
plt.show()

labels2 = s_reds.index.tolist()
sizes2 = s_reds.values.tolist()
rect2 = plt.bar(range(len(sizes2)), sizes2 , tick_label = labels2)
autolabel(rect2)
plt.show()

github地址是
https://github.com/dangsh/hive/blob/master/newSpider/lottery/double.py
对爬虫感兴趣的朋友可以看一下我的其它文章或者github上的hive项目~希望对你们有所帮助

<think>好的,用户想了解如何在IntelliJ IDEA中配置Tomcat启动项目。首先,我需要回忆一下具体的步骤,确保每个环节都正确。用户可能是个开发者,刚开始接触Java Web开发,或者之前使用过其他IDE,现在转用IDEA,所以需要详细的指导。 首先,应该检查用户是否已经安装了Tomcat,如果没有,需要提供下载和安装的指引。然后,确保用户使用的是Ultimate版本,因为Community版不支持Tomcat集成。接下来,配置Tomcat的步骤包括在IDEA中添加本地Tomcat服务器,可能需要指导用户找到Tomcat的安装目录。创建Web项目也是一个关键点,特别是如果用户是新手,可能需要说明如何选择正确的项目类型,比如使用Maven或者普通的Java Enterprise项目。 另外,部署工件(Artifact)的步骤可能容易出错,需要详细说明如何将项目打包成war或war exploded,添加到Tomcat的部署中。启动前的配置,比如上下文路径和端口号,也是需要注意的地方,特别是如果有多个项目或者端口冲突的情况。 可能用户遇到的问题包括找不到Tomcat服务器选项,这时候需要确认IDEA版本是否正确。或者部署后访问404错误,可能需要检查工件是否正确添加,以及上下文路径的设置。此外,热部署的配置对于开发效率很重要,应该提到如何设置Update classes and resources,这样用户修改代码后不需要重启Tomcat。 需要确保步骤清晰,分点说明,避免遗漏关键环节。同时,使用中文,避免专业术语过于晦涩,让新手也能理解。可能还需要提醒用户注意Tomcat的版本兼容性,以及JDK的版本是否匹配。最后,示例项目名称和路径可能需要用户根据实际情况修改,避免直接复制粘贴导致错误。</think>以下是在IntelliJ IDEA中配置Tomcat启动项目的详细步骤: --- ### 一、准备工作 1. 确保已安装: - IntelliJ IDEA **Ultimate** 版本(社区版不支持Tomcat) - JDK 1.8+ - Apache Tomcat([官网下载](https://tomcat.apache.org/)) --- ### 二、配置Tomcat服务器 1. **打开项目**后进入配置界面: - 顶部菜单栏 → `Run` → `Edit Configurations` - 或直接点击工具栏右侧 `Add Configuration` 按钮 2. **添加Tomcat服务器**: - 点击左上角 `+` 号 → 选择 `Tomcat Server` → `Local` - 在 `Application Server` 处点击 `Configure...` - 指定Tomcat安装目录(如:`C:\apache-tomcat-9.0.xx`) --- ### 三、创建Web项目(2种方式) #### 方式1:普通Java Web项目 1. 新建项目: - `File` → `New` → `Project` - 选择 `Java Enterprise` → 勾选 `Web Application` 2. 配置项目结构: - 确认生成 `web/WEB-INF/web.xml` - 在 `web` 目录下创建测试页面(如 `index.jsp`) #### 方式2:Maven项目 1. 新建项目: - 选择 `Maven` → 勾选 `Create from archetype` - 选择 `org.apache.maven.archetypes:maven-archetype-webapp` --- ### 四、部署项目到Tomcat 1. **配置部署工件**: - 在 `Deployment` 标签页 → 点击 `+` → 选择 `Artifact` - 选择 `war` 或 `war exploded`(推荐后者支持热部署) 2. **设置上下文路径**: - 在 `Application Context` 输入访问路径(如 `/demo`) --- ### 五、启动配置 1. **端口检查**: - 默认端口:`8080`(可在 `Server` 标签页修改) - 建议关闭其他占用8080端口的程序 2. **启动项目**: - 点击绿色三角运行按钮 - 控制台显示 `[Tomcat] Startup in [xxxx] ms` 表示启动成功 --- ### 六、访问测试 浏览器输入:`http://localhost:8080/你的上下文路径` (例如:`http://localhost:8080/demo/index.jsp`) --- ### 常见问题解决 1. **找不到Tomcat选项**: - 确认使用Ultimate版 - 检查是否安装了"Jakarta EE"插件 2. **404错误**: - 检查 `Deployment` 是否添加了正确的Artifact - 确认访问路径包含上下文路径 3. **热部署配置**: - 在 `Server` 标签页勾选: - `On &#39;Update&#39; action: Update classes and resources` - `On frame deactivation: Update classes and resources` --- 通过以上步骤即可完成Tomcat的配置与项目启动。建议创建简单的测试页面验证配置是否成功。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值