温故而知新,前面说了一下抓取信息的基本操作,今天抓取还是非常的简单,我们要抓取红球和蓝球的号码,我们顺道来回味下前面的操作,再了解下html标签,抓取双色球历史数据,首先我们要找到抓取的网址,就拿500彩票的来:http://datachart.500.com/ssq/history/history.shtml

先在浏览器打开这个网址,我们会看到如下,这是最近30期的数据:

老办法,我们轻轻的按下F12,弹出开发者工具,然后移动到07上,再轻轻点一下,如下:

这个时候,有细心的童鞋会问,这个怎么出现在了右边,这是为了方便调试和观察,具体设置在开发工具的右

上角,竖排的3个点里面,请自行研究

这里我也顺道说下,这个页面默认显示最新30条数据,如果我想获取更多的历史数据怎么办,这里有个方法,通过观察,它这里有个搜索的地方,我们先选择开发者工具中的,Network选项再选择XHR,这个表示XMLHttpRequest方法发送的请求,简单的说就是动态网络请求,隐藏很多静态JS,图片的链接,方便查看,然后在点击搜索一下,会出现:

这里我们能获取到查询的get请求地址:http://datachart.500.com/ssq/history/newinc/history.php?start=20001&end=20033,它这里表示的是start是开始的期数,end结束的期数。这样我们就可以根据自己想要查询的期数选择统计,我们单独把这个地址放到浏览器看看,会出现:

乱码就不管了,这是它页面编码问题,我们只是要获取数字,这里跟历史页的是一样的,以上都是在讲用开发者工具的使用,以及html的追踪观察,上面这些操作是一个写爬虫所必须要掌握的东西,如果不太懂,请自行深入学习,

通过观察,这些数据是以表格的形式展示的,这些数据都是在id为tdata的tbody标签中,经搜索这个标签是唯一的,那我们怎么获取到这个标签里的内容呢,下面我们一步一步来:

首先我们要先获取页面的源码内容,还是用requests请求,这里的方法前面已经讲了,这里就不再过多说明,直接上代码。如下:

#coding:utf-8
import requests
from pyquery import PyQuery as pq#双色球历史数据网址
url='http://datachart.500.com/ssq/history/newinc/history.php?start=20001&end=20033'
response=requests.get(url=url)
response.encoding = response.apparent_encoding
#获取到页面源码内容
content=response.text
#用pyquery格式化一下网页内容,下面就可以通过标签提出信息了
soup = pq(content)
#获取id=tdata的内容
tdata=soup("#tdata")
print(tdata)

这里我们就获取到了id为tdata的内容,打印一下:

这里是一行有点长,就截取一部分展示了,来,我们继续,table表单的层级关系,是table>tbody>tr>td,我们要获取到td的文本内容,通过观察源代码,我们想要获取的红球和蓝球的号码在1-7的td里面,

那下面就通过这段代码来获取:

#tdata('tr')是获取到id为tdata标签中所有tr标签
for data in tdata('tr'):  #循环tr标签trcon=pq(data)    #获取到tr的html内容,加上pq就是渲染为html格式#下面的格式一样,trcon("td")表示获取到tr下td的内容,.eq(index)这个表示获取到td的第几个元素,#比如第一个td的index就是0,因为排序是从0开始的,.text()是获取到td的文本内容td1 = trcon("td").eq(0).text()   #这个是获取到的第一个TD的内容,例如:20033td2 = trcon("td").eq(1).text()td3 = trcon("td").eq(2).text()td4 = trcon("td").eq(3).text()td5 = trcon("td").eq(4).text()td6 = trcon("td").eq(5).text()td7 = trcon("td").eq(6).text()td8 = trcon("td").eq(7).text()print(td1,td2,td3,td4,td5,td6,td7,td8)

说明在注释上,通过上面的代码我们就获取到了期号,红球和蓝球的号码,打印看下:

到这里有兴趣的童鞋就可以通过这里的数据进行分析,比如,我想获取蓝球在数据中那个号码出现的次数最多,那就可以这样加上,先将蓝球放入到一个数组中:

#定义一个存放蓝球的空数组
td_list_blue=[]
for data in tdata('tr'):trcon=pq(data)td1 = trcon("td").eq(0).text()td2 = trcon("td").eq(1).text()td3 = trcon("td").eq(2).text()td4 = trcon("td").eq(3).text()td5 = trcon("td").eq(4).text()td6 = trcon("td").eq(5).text()td7 = trcon("td").eq(6).text()td8 = trcon("td").eq(7).text()#print(td1,td2,td3,td4,td5,td6,td7,td8)#td8是蓝球的号码,我们将td8依次放入到数组中td_list_blue.append(td8)
#通过下面这句,我们能得到数组出现次数最多的号码,具体可以了解max,set语法
result = max(set(td_list_blue), key=td_list_blue.count)
print(result)

还可以细一点,就是你想获取蓝球数组前10个号码,你可以这样写:

td_list_blue[:10]

比如要获取第10个到第20个的号码:

td_list_blue[10:20]

以上就是数组的分片,具体可以当知识要点研究下,虽然本人分析了这么久,也没中一张彩票,但还是乐在其中~~!

下面来个完整源码:

#coding:utf-8
import requests
from pyquery import PyQuery as pqurl='http://datachart.500.com/ssq/history/newinc/history.php?start=20001&end=20033'
response=requests.get(url=url)
response.encoding = response.apparent_encoding
content=response.text
#用pyquery格式化一下网页内容,下面就可以通过标签提出信息了
soup = pq(content)
tdata=soup("#tdata")
#定义一个存放蓝球的空数组
td_list_blue=[]
for data in tdata('tr'):trcon=pq(data)td1 = trcon("td").eq(0).text()td2 = trcon("td").eq(1).text()td3 = trcon("td").eq(2).text()td4 = trcon("td").eq(3).text()td5 = trcon("td").eq(4).text()td6 = trcon("td").eq(5).text()td7 = trcon("td").eq(6).text()td8 = trcon("td").eq(7).text()#print(td1,td2,td3,td4,td5,td6,td7,td8)td_list_blue.append(td8)
result = max(set(td_list_blue), key=td_list_blue.count)
print(td_list_blue[10:len(td_list_blue)])
print(td_list_blue)

本篇所讲的其实大部分是在浏览器中开发者工具的基本使用,及requests,pyquery用法的回顾使用,在实际运用中,这些都会经常使用到,所谓工欲善其事,必先利其器,基本的东西常常使用上手了,熟悉了,那接下来就好办了。

好了,这篇就到此结束,下篇可能要讲一些稍微深入点的东西, 江湖不说再见,咱们下篇见!

关注公众号,不定期推出一些爬虫代码

如果有需要了解的和不明白的也可以加公众号留言,我会整理一些代码提供参考

江湖小白之一起学Python (三)双色球历史数据抓取相关推荐

  1. 江湖小白之一起学Python (五)爬取淘宝商品信息

    趁热需打铁,随着这几天的鸡血澎湃,我们来实现一下爬取淘宝商品信息,我记得几年前曾用python写了下抓取淘宝天猫,京东,拍拍的爬虫,专门采集商品信息,图片,评论及评论图片,我还用pyqt开发了个客户端 ...

  2. 江湖小白之一起学Python (十二)开发视频网之获取m3u8真实播放地址

    雨一直下,气氛还算融洽--,我这边下了一周的雨了,趁着目前有个把小时的间歇时间,赶紧接着上一篇更一波,哎,时间就是这么不够用,来吧,抓紧时间今天来实现一下提取m3u8真实的播放地址,实现上篇页面展示的 ...

  3. 零编程基础学python-如果是一个纯0编程基础的小白,如何学Python

    Python 可用的地方非常多.无论是从入门级选手(爬虫.前端.后端.自动化运维)到专业级数据挖掘.科学计算.图像处理.人工智能,Python 都可以胜任.或许是因为这种万能属性,周围好更多的小伙伴都 ...

  4. 给想学python-零基础的小白,如何学Python才能更快就业?

    前言 Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了高价值Python学习视频教程及相关电子版书籍,欢迎前来领取! 本篇文章主要讲,如果是一个纯0 ...

  5. 为何python不好找工作-听说自学Python不好找工作,小白要如何学Python?

    Python作为如今非常火热的编程语言,无论是使用程度还是受关注程度都在不断增加,吸引了不少人前去学习.想要学习Python无非有两种方法--自学和参加培训班,但很多自学Python的人会面临着不好就 ...

  6. 0基础小白学python好学吗-如果是一个纯0编程基础的小白,如何学Python

    Python 可用的地方非常多.无论是从入门级选手(爬虫.前端.后端.自动化运维)到专业级数据挖掘.科学计算.图像处理.人工智能,Python 都可以胜任.或许是因为这种万能属性,周围好更多的小伙伴都 ...

  7. 学python分析双色球_我通过使用Python分析了80多个工作拒绝而学到的东西

    学python分析双色球 by Conor Dewey 由Conor Dewey 我通过使用Python分析了80多个工作拒绝而学到的东西 (What I learned from analyzing ...

  8. jupyter分割代码块_科研分享—Python根据关键词自动抓取Pubmed文献标题(附全部代码)文末有福利...

    写在前面:接触Python应该是8月初的一篇公众号文章,大致内容是使用py爬取数据库并汇总到本地.正好手头需要对某个领域的文献进行调研,不妨学习一下. 什么是Python? 百度说:Python (计 ...

  9. python爬取百度贴吧中的所有邮箱_使用 Python 编写多线程爬虫抓取百度贴吧邮箱与手机号...

    原标题:使用 Python 编写多线程爬虫抓取百度贴吧邮箱与手机号 不知道大家过年都是怎么过的,反正栏主是在家睡了一天,醒来的时候登QQ发现有人找我要一份贴吧爬虫的源代码,想起之前练手的时候写过一个抓 ...

  10. python爬虫代码房-Python爬虫一步步抓取房产信息

    原标题:Python爬虫一步步抓取房产信息 前言 嗯,这一篇文章更多是想分享一下我的网页分析方法.玩爬虫也快有一年了,基本代码熟悉之后,我感觉写一个爬虫最有意思的莫过于研究其网页背后的加载过程了,也就 ...

最新文章

  1. js获取url中的参数,url中传递中文的时候通过js解码的方式
  2. 当SRS遇到K8s:如何实现高可用、回滚与灰度发布?
  3. python的excel库_Python-Excel 模块哪家强?
  4. JS高效数据存取指南
  5. python oserror路径not found_python基本操作-文件、目录及路径
  6. 设置mysql acquisition_MYSQL 7*24 高可用环境的部署
  7. 查询系统linux命令,Linux系统下基本的帮助查询命令小结
  8. Silverlight获取子控件和父控件方法
  9. python生成wifi字典_python生成密码字典的方法
  10. CVPR2022论文列表(中英对照)
  11. oppoA83怎么升级android版本,OPPOA83系统刷机包(官方最新固件升级包正式版-A.37)...
  12. 什么是云服务器ECS?
  13. Pelles C 五光十色中的一抹经典
  14. 结合 服务器+后端+前端,完成 vue项目 后台管理系统
  15. STM32 CAN总线故障检测功能的使用
  16. StoryDALL-E复现(基于预训练文本到图像Transformer的故事续编)
  17. 快门背后的机器学习:实时 HDR+ 和双重曝光控制
  18. python—二次规划求解
  19. GIS开发:分享NASA火灾地图(FIRMS Fire Map)
  20. 8.0钓鱼宏命令插件 使用方法

热门文章

  1. Linux下破解UE
  2. Python手动安装Jieba库(Win11)
  3. python美化excel_python3哪个库可以实现格式美化?
  4. 物联网智能垃圾回收源码 智慧分类回收源码 物联网应用
  5. QQ音乐API分析之-加密参数分析(sign计算)
  6. Ubuntu 20.04安装搜狗输入法(图文详解)
  7. 跨期套利策略(附:源码)
  8. Android篮球计分器课程设计,篮球计分器课程设计详解.doc
  9. 客户信息管理系统----Java实现(以对象数组为主)
  10. php版wap浏览器,PHP 检测手机浏览器的代码