网站: 阳光开奖
目的: 爬取近100期的开奖信息
F12 or 右击检查 打开开发者工具 点击网络(network) 刷新此网页
接着我们点击动态数据 XHR 将数据包清空 最后点击选择100期
监听到此数据包就为我们所需要的
Explain(headers基本的请求头):
-
UA --user-agent 包含了浏览器的基本信息 如载荷 什么浏览器 版本等
-
cookies: 用户的基本信息
-
host:域名
-
referer: 防盗链 页面跳转的初始网址
请求方式 GET or post
目的是将我们的python程序模拟成浏览器 向服务器拿数据 得到响应
右击此数据包 复制cURL(bash) 注意不要复制错了
到爬虫工具库-spidertools.cn 打开并复制到本地py文件
- response.text() 获取响应体的文本数据 比如源代码
- response.json() 获取JSON 格式的数据(动态数据 由服务器返回给前端的)
- response.content() 获取响应体的二进制数据 比如保存图片 音频 视频等
如果数据存在加密(cookie加密 关键字加密 md5 aes 非对称加密 瑞树 akaimai)或反爬(基本的上代理 过验证码 页面交互检测等等) 需要逆向 或者用自动化模块(简单的) 过风控
这里我们获取 json格式的数据即可 原因是服务器返回给前端页面的数据为json
这里有个pprint 模块 方便格式化打印 json格式的数据 使用方法如上
常见的解析模块有:
- re正则表达式
- css选择器
- Xpath
- parsel(集合了前三种模块)
- bs64(已经沉沦 不再使用 版本许久未更新了)
通过键值对 取数据 用字典存储提取的数据
如果以后解析复杂的JSON格式数据的话可以打开那个爬虫工具库 点第一个格式化json数据 可以复制路径 非常地方便
多页爬取数据的话 在params里面有个参数 修改嵌套for循坏即可 或者设置pagesize为想要爬取的条数
- csv格式
- excel格式
- 数据库
基本的三种保存方式
第一种
Explain:
打开名为 ssq.csv 的文件,以追加模式 (a) 打开,并指定编码为 utf-8 和换行符为空字符串。
创建一个 csv.DictWriter 对象,指定字段名列表,最后写入CSV文件的表头 再将字典写入表行
运行可得下面代码 发现 哦豁 乱码了
此时我们只需要将编码格式换成 utf-8-sig即可
再次运行代码 记得删除之前保存的csv文件再运行 ez
第二种 通过pandas 保存为excel文件
第三种 保存到数据库 看我上篇文章 在此就不演示了
爬虫的代码如下 供学习交流使用