将双色球信息排序下来,存储。使用python技术手段

1. 爬取http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html

import requests
from bs4 import BeautifulSoup
import time
import xlrd
import xlwt
from xlutils.copy import copydef getHTML(url):'''通过url以get方式请求获取响应数据:param url::return: html/str'''try:res = requests.get(url)return res.content.decode(res.apparent_encoding, 'ignore')except Exception as e:passdef getPages(html):'''获取页面总数:param html::return: nums/int'''soup = BeautifulSoup(html, 'html.parser')nums = int(soup.findAll('p')[1].find('strong').get_text())return numsdef initExcel():'''初始化excel表:return: filePath/url'''f = xlwt.Workbook()sheet1 = f.add_sheet(u'double', cell_overwrite_ok=True)row0 = [u'开奖日期', u'期号', u'中奖号码', u'销售额(元)   ', u'一等奖人数', u'一等奖遍布地区', u'二等奖人数', u'中奖详情地址', u'中奖视频地址']for i in range(0, len(row0)):sheet1.write(0, i, row0[i])f.save(r'D:\积累\学习\python\爬虫\彩票预测\双色球.xls')return 'D:\积累\学习\python\爬虫\彩票预测\双色球.xls'def writeExcel(path, data):'''将数据追加写入excel:param path::param data::return:'''workbook = xlrd.open_workbook(path)sheets = workbook.sheet_names()worksheet = workbook.sheet_by_name(sheets[0])rows_old = worksheet.nrowsnew_workbook = copy(workbook)new_worksheet = new_workbook.get_sheet(0)raws = len(data)for _ in range(raws):for j in range(0, len(data[_])):try:new_worksheet.write(_ + rows_old, j, data[_][j])  # 追加写入数据,注意是从i+rows_old行开始写入except Exception as e:continuenew_workbook.save(path)def parseData(html):'''解析页面数据,获取目标数据:param html: html页面数据:return: res/list'''soup = BeautifulSoup(html, 'html.parser')trs = soup.findAll('tr')[2:-1]leng = len(trs)res = []for i in range(leng):res0 = []tds = trs[i].findAll('td')pFir = tds[4].get_text().replace(" ", "").split("\n")res0.append(tds[0].get_text())res0.append(tds[1].get_text())res0.append(str(tds[2].get_text()).replace("\n", ""))res0.append(tds[3].get_text())res0.append(pFir[0])res0.append(pFir[1])res0.append(tds[5].get_text())res0.append(tds[6].findAll('a')[0]['href'])res0.append(tds[6].findAll('a')[1]['href'])res.append(res0)return resdef getUrl(n):'''通过页索引获取页面地址:param n::return: url/str'''return 'http://kaijiang.zhcw.com/zhcw/html/ssq/list_' + str(n) + '.html'def main():'''入口函数:return: None'''url = 'http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html'html = getHTML(url)# 获取总页数pageNo = getPages(html)# 初始化excel表path = initExcel()# 依次处理每一页数据for _ in range(1, pageNo + 1):print("正在爬取第%d页数据..." % _)url = getUrl(_)html = getHTML(url)# 解析数据excelData = parseData(html)# 追加存储数据writeExcel(path, excelData)print("第%d页数据爬取完成!" % _)time.sleep(3)print("爬取完成!")if __name__ == '__main__':main()

1.1 爬取效果

2.爬取http://datachart.500.com/ssq/history/newinc/history.php?start=00001&end=20130并使用matplotlib统计展示

import requests
from lxml import etree
import matplotlib.pyplot as plt
from pandas import Seriesurl = "http://datachart.500.com/ssq/history/newinc/history.php?start=00001&end=20130"
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()

2.1 爬取效果

3.使用第二种网站地址,爬取数据到sqlite数据库中


import sqlite3
import requests
import xlwt
from lxml import etreeconn = sqlite3.connect(r'D:\积累\学习\python\爬虫\彩票预测\SSQ.db')
cursor = conn.cursor()
url = "http://datachart.500.com/ssq/history/newinc/history.php?start=00001&end=20130"
response = requests.get(url)
response = response.text
selector = etree.HTML(response)cursor.execute("delete from SSQ")
values=["",0,0,0,0,0,0,0]for i in selector.xpath('//tr[@class="t_tr1"]'):values[0] = i.xpath('td/text()')[0]red = i.xpath('td/text()')[1:7]for j in range(0,len(red)):values[j+1] = red[j]values[7] = i.xpath('td/text()')[7]cursor.execute("INSERT INTO SSQ VALUES (?, ?, ?, ?, ?,?, ?, ?)",values);conn.commit()

2.1 爬取效果



发家致富:爬取双色球信息并统计相关推荐

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

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

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

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

  3. 爬取双色球的历史记录

    爬取双色球的历史记录 1.项目简介 ​ 双色球是由中国福利彩票的一种玩法.双色球投注区分为红色球号码区和蓝色球号码区,红色球号码区由1-33共三十三个号码组成,蓝色球号码区由1-16共十六个号码组成. ...

  4. python刷新页面_Python模拟浏览器爬取天猫信息

    由于工作需要,需要提取到天猫400个指定商品页面中指定的信息,于是有了这个爬虫.这是一个使用 selenium 爬取天猫商品信息的爬虫,虽然功能单一,但是也算是 selenium 爬虫的基本用法了. ...

  5. 以下用于数据存储领域的python第三方库是-Python3爬虫学习之MySQL数据库存储爬取的信息详解...

    本文实例讲述了Python3爬虫学习之MySQL数据库存储爬取的信息.分享给大家供大家参考,具体如下: 数据库存储爬取的信息(MySQL) 爬取到的数据为了更好地进行分析利用,而之前将爬取得数据存放在 ...

  6. MATLAB实战系列(二十八)-用matlab爬取火车票信息

    前言 之前博主使用matlab爬取火车票信息,博主觉得这个爬取过程还蛮有趣的,所以和大家分享一下如何用matlab爬取火车票信息. 比如我想要获取以下这些车次的始发站和终点站信息, 大家第一反应可能会 ...

  7. [python应用案例] 一.BeautifulSoup爬取天气信息并发送至QQ邮箱

    前面作者写了很多Python系列文章,包括: Python基础知识系列:Python基础知识学习与提升 Python网络爬虫系列:Python爬虫之Selenium+Phantomjs+CasperJ ...

  8. [python] 常用正则表达式爬取网页信息及分析HTML标签总结

    这篇文章主要是介绍Python爬取网页信息时,经常使用的正则表达式及方法.它是一篇总结性文章,实用性比较大,主要解决自己遇到的爬虫问题,也希望对你有所帮助~ 当然如果会Selenium基于自动化测试爬 ...

  9. python小爬虫(爬取职位信息和博客文章信息)

    1.python爬取招聘信息 简单爬取智联招聘职位信息(仅供学习) # !/usr/bin/env python # -*-coding:utf-8-*- """ @Au ...

  10. 爬虫项目三:爬取选课信息

    爬虫项目三:爬取whut-jwc选课信息 项目实现:主要获得通识选修.个性选课.英语体育选课的课程信息 核心: 1.实现网页登陆 2.爬取课程信息 一.网页信息登陆 from selenium imp ...

最新文章

  1. 中科大博士20万字正经论文:教你如何给女朋友送礼物
  2. android 双时区,理查德米勒推出RM 11-02自动机芯双时区飞返计时码表
  3. ython二十五: 解压序列
  4. springmvc +bootstrap创建简单web项目
  5. Android Studio 小提示,新建Activity
  6. 自制爬虫例--抓取网站图像与简介
  7. 推荐neter常用优秀开源项目系列之一
  8. Redis分布式锁解决抢购问题
  9. ld 指令c语言实现,C语言符号、指令表.doc
  10. SAP MM ME51N 创建采购申请单据时候永远取物料主数据基本计量单位
  11. 8皇后问题--回溯法 (循环递归)
  12. python获取同音字
  13. matlab如何绘制像素格子的图_如何根据测量数据绘制填挖方数据图
  14. 基于java校园教务排课系统设计与实现(springboot框架)
  15. 基于matlab算法的可靠度分析,参考基于matlab算法的可靠度分析
  16. 如何将单页面转化成手机版_【Mac分享】全套Adobe for mac(pojie版)
  17. Tuxera Disk Manager是什么软件,Tuxera Disk Manager怎么用
  18. 万字长文,冲刺备战金九银十,奉上[Java一线大厂高岗面试题解析合集]
  19. 文献阅读-区块链发展现状与展望
  20. [文摘20110220]会理财胜过高薪水

热门文章

  1. keil4软件的下载与安装
  2. 云主机 环境搭配 交接文档
  3. 轻量级的java HTTP Server——NanoHttpd
  4. Lua包管理工具Luarocks
  5. 计算机地图概括的原理,第五章地图概括与自动综合
  6. PostgreSQL 删除表格
  7. C语言计算高精度圆周率pi程序的代码
  8. Django入门,,适用小白
  9. 2021年全球电力线通信(PLC)系统收入大约7385.8百万美元,预计2028年达到14530百万美元,2022至2028期间,年复合增长率CAGR为11.0%
  10. (附源码)springboot校园购物网站 毕业设计 041037