Python爬取斗鱼直播信息
一、需求
爬取斗鱼直播网站信息,如直播名字、主播名字、热度、图片和房间网址,将这些数据保存到csv文件中,并单独创建文件夹保存图片。
斗鱼直播网址:https://www.douyu.com/g_LOL
二、分析url
先单击【直播】,然后单击分页,发现分页的时候url没发生变化,基本可以确定是通过异步加载的。现在找到了异步url。
此时,可以直接向url发送请求后去数据,还可以使用selenium获取加载之后的网页总数据,提取。
三、数据提取
有两种办法可以选择:
(1)如果使用ajax异步url,就是json转字典。
(2)如果使用selenium,使用xpath提取html数据。
四、代码实现
import requests
import csv
import time
import random
import osbase_url = "https://www.douyu.com/gapi/rkc/directory/mixList/0_0/{}"headers = {'accept': 'application/json, text/plain, */*','accept-encoding': 'gzip, deflate, br','accept-language': 'zh-CN,zh;q=0.9','cookie': 'dy_did=5cbce4bf40d16268812d1ca500011601; acf_did=5cbce4bf40d16268812d1ca500011601; Hm_lvt_e99aee90ec1b2106afe7ec3b199020a7=1602166389,1602232258; Hm_lpvt_e99aee90ec1b2106afe7ec3b199020a7=1602289306','referer': 'https://www.douyu.com/directory/all','sec-fetch-dest': 'empty','sec-fetch-mode': 'cors','sec-fetch-site': 'same-origin','user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36','x-requested-with': 'XMLHttpRequest'
}def parse_json(url, params={}):"""解析url,得到字典"""time.sleep(random.random())response = requests.get(url=url, headers=headers, params=params)return response.json()def parse_content(url, params={}):"""解析url,得到字节"""time.sleep(random.random())response = requests.get(url=url, headers=headers, params=params)return response.contentdef get_data(url):"""获取数据"""data = parse_json(url)data_list = data["data"]["rl"]for data in data_list:item = {}item["name"] = data["rn"]#直播名字item["anchor"] = data["nn"]#主播名字item["hot"] = data["ol"]#热度item["pic"] = data["rs16"]#图片item["url"] = "https://www.douyu.com"+data["url"]#房间网址save(item)save_pic(item)def save(item):"""将数据保存到csv中"""with open("./斗鱼直播.csv", "a", encoding="utf-8") as file:writer = csv.writer(file)writer.writerow(item.values())def save_pic(item):"""保存图片"""# 创建文件夹if not os.path.exists("./files/douyu"):os.makedirs("./files/douyu")#获取字节content = parse_content(item["pic"])# 文件的名字filename = "./files/douyu/{}".format(item["pic"].split("/")[-2])# 文件写with open(filename, "wb") as file:file.write(content)def main():#分页for i in range(1,65):print(i)get_data(base_url.format(i))if __name__ == '__main__':main()
五、运行结果
Python爬取斗鱼直播信息相关推荐
- Python爬取斗鱼直播网站信息
一.需求 爬取斗鱼直播网站信息,如直播名字.主播名字.热度.图片和房间网址,将这些数据保存到csv文件中,并单独创建文件夹保存图片. 斗鱼直播网址:https://www.douyu.com/g_LO ...
- 【Python爬虫】爬取斗鱼直播信息(Fiddler抓包分析)
大年初七了还不开始学习嘛? 过年期间一直再在看斗鱼直播平台的直播,学习主播的操作(骚套路)想着等有机会也来实战一波.看着看着就很想分析一下到底哪些主播观看的人数比较多,又为啥会有这么多人看.所以我们就 ...
- python selenium加bs4批量爬取斗鱼直播信息
from selenium import webdriver from bs4 import BeautifulSoup import time # 返回Phantomjs对象 driver = we ...
- 使用selenium自动爬取斗鱼直播平台的所有房间信息
使用selenium自动爬取斗鱼直播平台的所有房间信息 文章目录 使用selenium自动爬取斗鱼直播平台的所有房间信息 使用selenium实现动态页面模拟点击 什么是selenium? selen ...
- 利用斗鱼api学习爬取斗鱼直播间信息
python爬取斗鱼房间的弹幕 斗鱼弹幕服务api:https://open.douyu.com/source/api/63 基本步骤: 连接斗鱼api服务器 构造登录请求 进入房间并构造获取弹幕请求 ...
- PYTHON爬取斗鱼英雄联盟所有在玩adc的主播房间信息
Python爬取斗鱼英雄联盟所有玩adc的主播房间信息并用redis存储数据 最近想要用巩固下json数据的提取以及数据的存储,于是选了斗鱼作为研究对象.. 下面就是所有要爬取的adc,当然有个别ad ...
- 使用scrapy爬取斗鱼直播间信息
目录 1. 谷歌抓包工具的使用 1.1 打开Chrome开发者工具的方法 1.2 开发者工具的结构 1.3 network模块 2. 使用谷歌抓包工具抓取斗鱼数据 3. 使用scrapy爬取斗鱼直播间 ...
- Requests爬取斗鱼直播列表信息
实现简单小爬虫,爬取斗鱼直播页面所有当前在线直播列表信息 文章目录 1 目标分析 2 分析URL 2.1 分析首页URL 2.2 分析换页URL 2.3 确定爬取URL 3 代码 4 总结 1 目标分 ...
- 实时爬取斗鱼直播时的弹幕消息
最近想爬取实时消息,上网查了下,所以爬取斗鱼直播的弹幕消息做了下练习,这个开源的代码有很多,但是具体是怎么爬取到的还是要仔细地研究下.想爬取斗鱼的弹幕消息,按照常用的做法是打开网页用抓包工具抓包,但是 ...
最新文章
- 泛函编程(19)-泛函库设计-Parallelism In Action
- Python3引号创建字符串
- 体二极管的原理及应用
- 什么是 StackBlitz 的 web container
- 自己写的简易多任务系统---基于pic18fxxx
- 【Java】二维码生成,QRcode
- Android App层通过JNI从驱动获取Input Event
- android 上传图片给js,安卓中HTML5图片上传实例详解
- Kafka 麒麟先生_近百位超人气嘉宾出席元旦萤火虫,重磅新企划蓄势待发!
- Unity3D面试题汇总
- 老旧小区智慧用电改造方案
- 三月主题读书整理——整理收纳,过心动生活
- Hyper-V下Centos7连接不上外网
- Linux命令速查---kalrry
- 攻防世界——web新手题
- 转载《利用Windows系统自带命令手工搞定病毒》_原水_新浪博客
- 二十年后我发明了保姆机器人作文_未来的保姆机器人作文
- HGAME 2023 Week1
- 面向游戏玩家的六款最佳Linux发行版
- 元宇宙+教育,究竟是什么?学校可以怎么做?
热门文章
- 计算机毕业设计ssm农村地产物品交易网站mg72q系统+程序+源码+lw+远程部署
- PP-OCRV3使用教程
- 黑马学成在线-内容管理
- 3D建模的培训机构一般多少钱?
- template with C linkage解决方法
- ArFi光刻胶市场现状及未来发展趋势分析
- 支付系统高可用架构设计,写得太好了!(建议收藏)
- 我的电磁学讲义14:动生电动势和感生电动势
- ubuntu下hadoop,spark配置
- latex使用bibtex引用时出现问好(?)如何解决,报错I couldn‘t open style file sn-mathphys.bst