• 学习了Python语言程序设计和Python网络爬虫与信息提取,需要找些网站来练练手,于是在网上找了些别人爬取的网站,最终选择了虎牙直播平台进行爬取,并为后续数据分析存储数据。
    首先打开虎牙直播平台,进入虎牙直播,通过点击下一页,我们发现虎牙直播平台网页网址并未发生变化,这是采用Ajax动态加载和翻页,详见爬取Ajax动态加载和翻页时url不变的网页+网站案例。点击鼠标右键-检查,查看“Network-XHR”,刷新后,点击下一页,发现在“Name”里多了些东西,通过点击查看发现了“cache.php?m=LiveList&do=getLiveListByPage&tagAll=0&page=2”这一项,点击后查看“Headers”,General中Request的 URL,应该是我们要的网址,点击“Response”,发现其为json语言,复制后,通过网站在线解析,很清楚就看到了我们想要的东西,每个房间的信息历历在目。得到了这些东西,我们就可以对该网页进行数据爬取了。
  1. 构建网页地址-定义了get_url()函数,此处采用了yield关键字,每次产生一个网址,读取完数据后,再生成第二个网址;
  2. 获取网页json数据并转为Python,定义了get_html_text()函数,采用的是requests库请求数据,并采用json库loads方法将请求的数据转为Python;
  3. 获取各个主播房间的详细信息,定义了get_host_info()函数,json数据转换后的Python数据是字典格式,需要采用字典关键字来获得主播信息,此处也采用了yield关键字,来每次生成一个主播的房间名字,房间类型,主播名称及房间人数,最后采用元组返回;
  4. 最后是代码的主程序,将数据写入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文件相关推荐

  1. Python3爬取豆瓣图书Top250并存入csv文件中

    本文抓取豆瓣图书Top250中的相关资讯,可以练习对于网页结构的分析及提取. 下面先导入相关的包,并伪装成浏览器访问: import requests from lxml import etree i ...

  2. python xpath爬取豆瓣图书Top 250存入csv文件并解决csv乱码问题

    我上次分享过关于爬取豆瓣电影top250的实战:BeautifulSoup爬取豆瓣电影top250信息 和 python BeautifulSoup爬取豆瓣电影top250信息并写入Excel表格 , ...

  3. Python爬取虎牙直播数据并分析

    这里写的比较懒,面向过程,下一篇会写斗鱼的稍模块化一点 import requests import timepage, count, num, lis, game_list, hot_list = ...

  4. jsoup爬取虎牙直播的信息

    jsoup爬取虎牙直播的信息,实时得到主播名字,直播间链接,推荐位,标题,人气的数据 主要代码如下: package main;import java.util.ArrayList;import or ...

  5. 爬取虎牙直播图片的代码分析

    爬取虎牙直播图片的分析 文章目录 爬取虎牙直播图片的分析 一.直接放源码 二.代码分析 总结 一.直接放源码 import requests from lxml import etree url='h ...

  6. 【爬虫实战】python爬取虎牙直播间封面美女图片

    Python爬虫爬取虎牙直播间封面美女图片 本文目录 Python爬虫爬取虎牙直播间封面美女图片 写作缘起 上代码 效果展示 思路分析 写作缘起 这篇文章主要是介绍如何使用python爬虫来爬取虎牙直 ...

  7. python爬取股票数据,以上证指数为例,可以爬取任何股票,保存为temp.csv文件

    python爬取股票数据,以上证指数为例,可以爬取任何股票,保存为temp.csv文件 import requests import pandas as pd# market: 0:沪市 1:深市 # ...

  8. Python爬取售房信息并保存至CSV文件

    Python爬取售房信息并保存至CSV文件 在上一篇文章: Python爬取租房信息并保存至Excel文件,介绍了如何使用Python爬取租房信息并保存至Excel文件,在本案例中则是使用Python ...

  9. python爬取明星百度图片并存入本地文件夹

    python爬取明星百度图片并存入本地文件夹 想要一个明星图片的时候,发现图片量过大,一张张保存太累,不太现实 这时候就可以用到爬虫,批量爬取图片 现在又出现一个问题,当发现一个明星爬完后,再爬取下一 ...

最新文章

  1. 皮一皮:爸爸的地位...
  2. 一个类型初始值设定项引发异常
  3. 爬虫——多线程糗事百科案例
  4. 使用mysqlsla 分析 mysql logs
  5. [BZOJ]3926 诸神眷顾的幻想乡(ZJOI2015)
  6. 吴恩达机器学习(八)偏差与方差
  7. MyEclipse使用过程中的问题及对应设置的总结
  8. 现代通信原理思维导图--第四章 信道
  9. html从谷歌浏览器跳转到IE,谷歌浏览器chrome
  10. win10下使用opencv4.5.0 cuda版本编译和目标检测的几个问题
  11. 彼得·林奇迄今最珍贵的一次演讲
  12. linux kvm参数,virt-install创建kVM参数
  13. Zhishi.me - Weaving Chinese Linking Open Data
  14. 用python编写AutoCAD插件日志
  15. java将图片背景替换为透明
  16. 循环结构(二)——循环嵌套
  17. pycharm 破解方法
  18. 通过dockerfile构建jar包镜像
  19. 打印机故障处理【以MP 3054sp 打印机为例】
  20. 医咖会免费STATA教程学习笔记—如何安装新命令

热门文章

  1. 学会了这套方法论,你就能更高效地解决问题(2)
  2. Python 3.x--tkinter(二): 抽象画?!
  3. android 虹软 例子,虹软离线人脸识别源码Android版本
  4. 为什么都开始搞研发效能?
  5. 新冠疫情中的区块链应用
  6. STM32F10X SPI操作flash MX25L64读写数据
  7. 10万弹幕大军带你一起看芒果热播综艺《披荆斩棘的哥哥》
  8. Java中文语言处理HanLP
  9. 考研英语复习规划好时间事半功倍
  10. 中国12家云平台实际进展情况,看完这篇你就全部了解了!