通过对json数据解析爬取虎牙直播数据并存入csv文件
- 学习了Python语言程序设计和Python网络爬虫与信息提取,需要找些网站来练练手,于是在网上找了些别人爬取的网站,最终选择了虎牙直播平台进行爬取,并为后续数据分析存储数据。
首先打开虎牙直播平台,进入虎牙直播,通过点击下一页,我们发现虎牙直播平台网页网址并未发生变化,这是采用Ajax动态加载和翻页,详见爬取Ajax动态加载和翻页时url不变的网页+网站案例。点击鼠标右键-检查,查看“Network-XHR”,刷新后,点击下一页,发现在“Name”里多了些东西,通过点击查看发现了“cache.php?m=LiveList&do=getLiveListByPage&tagAll=0&page=2”这一项,点击后查看“Headers”,General中Request的 URL,应该是我们要的网址,点击“Response”,发现其为json语言,复制后,通过网站在线解析,很清楚就看到了我们想要的东西,每个房间的信息历历在目。得到了这些东西,我们就可以对该网页进行数据爬取了。
- 构建网页地址-定义了get_url()函数,此处采用了yield关键字,每次产生一个网址,读取完数据后,再生成第二个网址;
- 获取网页json数据并转为Python,定义了get_html_text()函数,采用的是requests库请求数据,并采用json库loads方法将请求的数据转为Python;
- 获取各个主播房间的详细信息,定义了get_host_info()函数,json数据转换后的Python数据是字典格式,需要采用字典关键字来获得主播信息,此处也采用了yield关键字,来每次生成一个主播的房间名字,房间类型,主播名称及房间人数,最后采用元组返回;
- 最后是代码的主程序,将数据写入csv文件,由于用的Mac电脑,直接存入未经编码为中文的数据后,用excel打开csv文件,显示的一堆乱码,此处需要在open打开文件时,指定编码格式为“gbk”中文,再将文件写入,保存后的文件用excel打开才会显示中文。如果需要对生成的csv文件进行数据分析,同样需要对其编码格式进行指定为“gbk”,读取后的数据才会显示成中文。
介绍了这么多,直接上代码吧:
import requests
import json"""获取虎牙JSON网页地址"""
def get_url():base_url = 'https://www.huya.com/cache.php?m=LiveList&do=getLiveListByPage&tagAll=0&page='num = eval(input("请输入爬取网页数量:"))for i in range(num):url = base_url + str(i+1)yield url"""获取JSON数据,并转为Python数据"""
def get_html_text(url):try:r = requests.get(url)r.raise_for_status()js_data = json.loads(r.text)return js_dataexcept:return """""提取主播房间名,房间类型,主播名及房间人数"""
def get_host_info(data):host_info = data['data']['datas']for info in host_info:room_name = info['introduction']room_type = info['gameFullName']room_host = info['nick']room_persons = info['totalCount']yield room_name, room_type, room_host, room_persons"""写入文件"""
if __name__ == "__main__":with open('huya.csv', 'a+', encoding='gbk') as f:for url in get_url():js_data = get_html_text(url)for host_info in get_host_info(js_data):try:f.write(','.join(host_info)+'\n')except UnicodeEncodeError:continuef.close()
通过对json数据解析爬取虎牙直播数据并存入csv文件相关推荐
- Python3爬取豆瓣图书Top250并存入csv文件中
本文抓取豆瓣图书Top250中的相关资讯,可以练习对于网页结构的分析及提取. 下面先导入相关的包,并伪装成浏览器访问: import requests from lxml import etree i ...
- python xpath爬取豆瓣图书Top 250存入csv文件并解决csv乱码问题
我上次分享过关于爬取豆瓣电影top250的实战:BeautifulSoup爬取豆瓣电影top250信息 和 python BeautifulSoup爬取豆瓣电影top250信息并写入Excel表格 , ...
- Python爬取虎牙直播数据并分析
这里写的比较懒,面向过程,下一篇会写斗鱼的稍模块化一点 import requests import timepage, count, num, lis, game_list, hot_list = ...
- jsoup爬取虎牙直播的信息
jsoup爬取虎牙直播的信息,实时得到主播名字,直播间链接,推荐位,标题,人气的数据 主要代码如下: package main;import java.util.ArrayList;import or ...
- 爬取虎牙直播图片的代码分析
爬取虎牙直播图片的分析 文章目录 爬取虎牙直播图片的分析 一.直接放源码 二.代码分析 总结 一.直接放源码 import requests from lxml import etree url='h ...
- 【爬虫实战】python爬取虎牙直播间封面美女图片
Python爬虫爬取虎牙直播间封面美女图片 本文目录 Python爬虫爬取虎牙直播间封面美女图片 写作缘起 上代码 效果展示 思路分析 写作缘起 这篇文章主要是介绍如何使用python爬虫来爬取虎牙直 ...
- python爬取股票数据,以上证指数为例,可以爬取任何股票,保存为temp.csv文件
python爬取股票数据,以上证指数为例,可以爬取任何股票,保存为temp.csv文件 import requests import pandas as pd# market: 0:沪市 1:深市 # ...
- Python爬取售房信息并保存至CSV文件
Python爬取售房信息并保存至CSV文件 在上一篇文章: Python爬取租房信息并保存至Excel文件,介绍了如何使用Python爬取租房信息并保存至Excel文件,在本案例中则是使用Python ...
- python爬取明星百度图片并存入本地文件夹
python爬取明星百度图片并存入本地文件夹 想要一个明星图片的时候,发现图片量过大,一张张保存太累,不太现实 这时候就可以用到爬虫,批量爬取图片 现在又出现一个问题,当发现一个明星爬完后,再爬取下一 ...
最新文章
- 皮一皮:爸爸的地位...
- 一个类型初始值设定项引发异常
- 爬虫——多线程糗事百科案例
- 使用mysqlsla 分析 mysql logs
- [BZOJ]3926 诸神眷顾的幻想乡(ZJOI2015)
- 吴恩达机器学习(八)偏差与方差
- MyEclipse使用过程中的问题及对应设置的总结
- 现代通信原理思维导图--第四章 信道
- html从谷歌浏览器跳转到IE,谷歌浏览器chrome
- win10下使用opencv4.5.0 cuda版本编译和目标检测的几个问题
- 彼得·林奇迄今最珍贵的一次演讲
- linux kvm参数,virt-install创建kVM参数
- Zhishi.me - Weaving Chinese Linking Open Data
- 用python编写AutoCAD插件日志
- java将图片背景替换为透明
- 循环结构(二)——循环嵌套
- pycharm 破解方法
- 通过dockerfile构建jar包镜像
- 打印机故障处理【以MP 3054sp 打印机为例】
- 医咖会免费STATA教程学习笔记—如何安装新命令