爬取双色球的历史记录

1.项目简介

​ 双色球是由中国福利彩票的一种玩法。双色球投注区分为红色球号码区和蓝色球号码区,红色球号码区由1-33共三十三个号码组成,蓝色球号码区由1-16共十六个号码组成。投注时选择6个红色球号码和1个蓝色球号码组成一注进行单式投注,每注金额人民币2元。

​ 今天爬取一个关于双色球开奖历史的网站。

2.项目流程

1.获取目标网站
2.解析目标网站
3.数据获取
4.数据保存

3.项目准备

1.目标网站
2.工具准备:

pandas requests lxml

3.网页解析

​ 使用xpath解析网页

4.数据存储

​ 将数据保存在CSV文件中

4.程序编写

1.获取每一页的URL
def get_pag_url():"""获取每一页的URL"""urls=[]for i in range(1,123+1):i=str(i)url= 'http://kaijiang.zhcw.com/zhcw/html/ssq/list_'+i+'.html'urls.append(url)return urls
2.获取每一页的数据信息
def get_imfomation(url):"""获取每一页的数据信息"""resp=requests.get(url).texthtml=etree.HTML(resp)data=html.xpath('//tr/td[1]/text()')number=html.xpath('//tr/td[2]/text()')red_1=html.xpath('//tr/td[3]/em[1]/text()')red_2=html.xpath('//tr/td[3]/em[2]/text()')red_3=html.xpath('//tr/td[3]/em[3]/text()')red_4=html.xpath('//tr/td[3]/em[4]/text()')red_5=html.xpath('//tr/td[3]/em[5]/text()')red_6=html.xpath('//tr/td[3]/em[6]/text()')blue=html.xpath('//tr/td[3]/em[7]/text()')data=zip(data,number,red_1,red_2,red_3,red_4,red_5,red_6,blue)return data
3.创建一个CSV文件,将数据表的列名(第一行)写进去
def creat_csv():"""创建一个CSV文件,并且写入列表的头部信息"""first_data = [('日期', '期号', '红球1', '红球2', '红球3', '红球4', '红球5', '红球6', '蓝球')]first_line = pd.DataFrame(data=first_data, columns=['日期', '期号', '红球1', '红球2', '红球3', '红球4', '红球5', '红球6', '蓝球'])first_line.to_csv('双色球信息.csv', encoding='gb18030', mode='a', index=False, header=False)
4.将传入的数据追加保存在创建好的CSV文件中
def saving(data):"""将每一页的数据追加写入创建好的CSV文件中"""all_data=pd.DataFrame(data=data,columns=['日期','期号','红球1','红球2','红球3','红球4','红球5','红球6','蓝球'])all_data.to_csv('双色球信息.csv',encoding='gb18030',mode='a',index= False,header=False)
5.主函数(调度器)
def main():"""主函数爬虫调度器"""creat_csv()url_list=get_pag_url()for i in url_list:print("正在获取第{}页的信息".format(i))data=get_imfomation(i)saving(data)

5.总结评价

  1. 这个项目主要运用Python实现简单的网络爬虫,目标网站布局清楚,解析网页十分容易,操作起来几乎没有什么困难。

  2. 在保存数据的时候,可能要注意到CSV文件的创建和通过循环追加写入的方法,另外,CSV文件可以通过Excel打开查看,但是Excel支持的编码是 gb18030 ,使用默认的编码方式可能会对中文输入产生乱码。

6.源代码


"""
item:获取双色球历史开奖记录
author:Jonty
"""
import requests
from lxml import etree
import pandas as pd
def get_pag_url():"""获取每一页的URL"""urls = []for i in range(1, 123+1):i = str(i)url ='http://kaijiang.zhcw.com/zhcw/html/ssq/list_'+i+'.html'urls.append(url)return urlsdef get_imfomation(url):"""获取每一页的数据信息"""resp = requests.get(url).texthtml = etree.HTML(resp)data = html.xpath('//tr/td[1]/text()')number = html.xpath('//tr/td[2]/text()')red_1 = html.xpath('//tr/td[3]/em[1]/text()')red_2 = html.xpath('//tr/td[3]/em[2]/text()')red_3 = html.xpath('//tr/td[3]/em[3]/text()')red_4 = html.xpath('//tr/td[3]/em[4]/text()')red_5 = html.xpath('//tr/td[3]/em[5]/text()')red_6 = html.xpath('//tr/td[3]/em[6]/text()')blue = html.xpath('//tr/td[3]/em[7]/text()')data = zip(data,number,red_1,red_2,red_3,red_4,red_5,red_6,blue)return data
def saving(data):"""将每一页的数据追加写入创建好的CSV文件中"""all_data = pd.DataFrame(data=data,columns=['日期','期号','红球1','红球2','红球3','红球4','红球5','红球6','蓝球'])all_data.to_csv('双色球信息.csv',encoding='gb18030',mode='a',index= False,header=False)
def creat_csv():"""创建一个CSV文件,并且写入列表的头部信息"""first_data = [('日期', '期号', '红球1', '红球2', '红球3', '红球4', '红球5', '红球6', '蓝球')]first_line = pd.DataFrame(data=first_data, columns=['日期', '期号', '红球1', '红球2', '红球3', '红球4', '红球5', '红球6', '蓝球'])first_line.to_csv('双色球信息.csv', encoding='gb18030', mode='a', index=False, header=False)def main():"""主函数爬虫调度器"""creat_csv()url_list = get_pag_url()for i in url_list:print("正在获取第{}页的信息".format(i))data = get_imfomation(i)saving(data)
if __name__ == '__main__':main()

爬取双色球的历史记录相关推荐

  1. 带你爬取双色球历史开奖信息并作可视化分析

    爬取双色球历史开奖 + 可视化分析 更 多 爬 虫 教 程 请 移 步 \color{red}更多爬虫教程请移步 更多爬虫教

  2. 爬取双色球的中奖号码

    好久没更新了,最近工作才慢慢进入正轨,才有时间来慢慢记录自己喜欢和感兴趣的事. 前段时间看到有朋友在研究双色球的事,顺便学习了一下,感觉可以用我们所学来简单的预测一下下一期的双色球事多少,所以我爬取来 ...

  3. 记录一下使用nodejs爬取双色球历史开奖数据并写入文件过程,仅自己做着玩玩

    [双色球给了几个红球和几个蓝球使用js生成所有可能的结果] 发送请求这里使用的 superagent 解析 html 这里使用的 cheerio 拿的数据是:https://datachart.500 ...

  4. Python爬取双色球数据进行分析

    突发奇想,是否可以从双色球的历史信息中分析出现次数最多的组合,那就从1+1的组合开始分析,嘿嘿,经常中这种组合也挺不错哦!现在我们开始获取数据,应该从中彩网的爬取数据比较靠谱,下面是脚本. # -*- ...

  5. 【Python】爬虫初体验,40行代码爬取双色球2003年至今的开奖号码

    爬虫爬取的双色球开奖号码 按我目前的理解,爬虫的工作原理大致是: 获取目标网页,在网页(html文件)中筛选目标数据,最后把数据导出 利用爬虫爬取数据看似很"高深莫测",只需几分钟 ...

  6. 用Python写一个爬虫,爬取双色球开奖记录

    好的,下面是一个简单的爬虫代码,它爬取了双色球开奖记录: import requests from bs4 import BeautifulSoupurl ="http://kaijiang ...

  7. python爬虫抓取双色球_Python爬虫练习:爬取双色球每期的中奖号码,看能不能中奖...

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于CSDN ,作者嗨学编程 确定URL 请求网页 http://www.cwl. ...

  8. python爬取双色球数据+数据统计

    2019独角兽企业重金招聘Python工程师标准>>> 彩票数据爬去---写入mysql: import requests import re#python中的正则表达式(re模块) ...

  9. py3+requests+urllib+bs4+threading,爬取斗图图片

    实现原理及思路请参考我的另外几篇爬虫实践博客 py3+urllib+bs4+反爬,20+行代码教你爬取豆瓣妹子图:http://www.cnblogs.com/uncleyong/p/6892688. ...

最新文章

  1. LINQ to XML 建立,读取,增,删,改
  2. 【EventBus】EventBus 源码解析 ( 注册订阅者总结 | 从封装的数据结构角度分析 EventBus )
  3. Coursera课程Python for everyone:chapter7
  4. C++内联函数的学习
  5. B08_NumPy 广播(Broadcast)
  6. Visual Studio Code 常用插件整理
  7. Cesium整体架构介绍
  8. 使用ps 批处理图片(gif 转 png)
  9. 使用计算机辅助翻译,计算机辅助翻译方法
  10. 什么是电影衍生品,电影衍生品是用来干嘛的?
  11. c0704 学生记录
  12. manjaro kde 20.2安装
  13. 写一段潮汐调和分析的matlab代码
  14. python 三维数据绘制等高线_python密度与等高线绘制,Python,和,轮廓图,Matplotlib,详解...
  15. 跟着团子学SAP:SAP用户状态管理详解(含权限分配等) OK02
  16. 系统架构设计师-软件水平考试(高级)-论文-架构风格
  17. 常见LED灯的颜色波长及应用
  18. DicomVCL for D6-D2010-Crack
  19. 一次弄懂aardio中的数据类型转换
  20. Mac_您不能拷贝项目“”,因为它的名称太长或包括的字符在目的宗卷上无效

热门文章

  1. Python数学建模—线性规划
  2. 谈谈百度/GOOGLE联盟和一般联盟的区别
  3. 区块链学习笔记二之区块链的加密技术
  4. 消金主流市场外的灰色地带:vivo应用商店聚集大量“伪现金贷平台”
  5. PHP复习_PDO实战之实现注册邮件发送
  6. PS 2019 Mac版 自学入门系列(七)—— 调亮深色区域
  7. 5步告诉你QQ音乐的完美音质是怎么来的,播放器的秘密都在这里
  8. 3D目标检测框架综述(OpenPCDet、mmdet3d、Det3D、Paddle3D)
  9. 一个机器人教小八_哈工程学生研发的水下机器人“敖小八”亮相浙江卫视
  10. python提示unmatched_Python: Unmatched group exception