提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
例如:这次一篇爱玩双色球朋友的福利,可以以往所有期的数据的插入数据库.可以对数据进行建模分析,祝愿所有朋友中奖,中一等奖别忘记给博主打赏.
一、BeautifulSoup是什么?
示例:BeautifulSoup是python的爬虫依赖包,用pip按照 beautifulsoup4包.
pip install beautifulsoup4
二、使用步骤
1.数据库脚本
代码如下(示例):
-- ----------------------------
-- Table structure for tb_dou_color_data
-- ----------------------------
DROP TABLE IF EXISTS `tb_dou_color_data`;
CREATE TABLE `tb_dou_color_data` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '主键',
`period` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '期号',
`time` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '日期',
`red_one` int DEFAULT NULL COMMENT '红1',
`red_two` int DEFAULT NULL COMMENT '红2',
`red_three` int DEFAULT NULL COMMENT '红3',
`red_four` int DEFAULT NULL COMMENT '红4',
`red_five` int DEFAULT NULL COMMENT '红5',
`red_six` int DEFAULT NULL COMMENT '红6',
`blue` int DEFAULT NULL COMMENT '蓝1',
`signal_list` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '个数集',
`signal_list_count` int DEFAULT NULL COMMENT '个数集个数',
`red_sum` int DEFAULT NULL COMMENT '红合数',
`signal_model` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '红数字模型',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=3463 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='双色球数据';
2.爬的网站地址
代码如下(示例):
https://kaijiang.500.com/static/info/kaijiang/shtml/ssq/
该处使用的url网络请求的数据。
3.python脚本
import requests
import xlwt
import time
import base64
from bs4 import BeautifulSoup
import pymysql
# 获取网页内容
def get_html(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
}
try:
response = requests.get(url, headers = headers)
response.encoding = "gb2312"
if response.status_code == 200:
# 判断是否为已经超过最大的基线()
resoptext = BeautifulSoup(response.text, 'html.parser',fromEncoding="gb18030")
isFlag = resoptext.select('.kj_tablelist02')[0].select('tr')[1].select('li')[0].text
if isFlag == '':
return None
return response.text
else:
print('--------------------')
print(url)
print('无数据!')
print