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 ...
- 使用scrapy爬取斗鱼直播间信息
目录 1. 谷歌抓包工具的使用 1.1 打开Chrome开发者工具的方法 1.2 开发者工具的结构 1.3 network模块 2. 使用谷歌抓包工具抓取斗鱼数据 3. 使用scrapy爬取斗鱼直播间 ...
- 利用斗鱼api学习爬取斗鱼直播间信息
python爬取斗鱼房间的弹幕 斗鱼弹幕服务api:https://open.douyu.com/source/api/63 基本步骤: 连接斗鱼api服务器 构造登录请求 进入房间并构造获取弹幕请求 ...
- Requests爬取斗鱼直播列表信息
实现简单小爬虫,爬取斗鱼直播页面所有当前在线直播列表信息 文章目录 1 目标分析 2 分析URL 2.1 分析首页URL 2.2 分析换页URL 2.3 确定爬取URL 3 代码 4 总结 1 目标分 ...
- 利用Python爬虫爬取斗鱼直播间信息,以及直播的实际人数!
首先我准备利用mysql来存储我爬取的信息,建一个host表如下: 然后下载pymysql ,利用它与数据库链接,因为在这里我只涉及到写入的操作: Unit_Mtsql 然后就是使用Beautiful ...
- 利用python爬取某直播网站实时弹幕并分析
这里写自定义目录标题 技术选择以及思路 分析 好久没来这个破站更新了,看着充斥着各种CV操作的csdn,质量已经越来越差,但作为在这获得过帮助的人,理应也做几个原创帮点小忙.之前刚好有说要一个弹幕机器 ...
- python 使用selenium爬取斗鱼直播房间信息
用到的模块 今天没课,开启正片 selenium 打开浏览器提取数据 time 每打开一个页面睡眠几秒,防止太快报错还有被发现 json 写入文件要用到 完整代码如下(为了减少代码就不使用类了) fr ...
- 使用selenium自动爬取斗鱼直播平台的所有房间信息
使用selenium自动爬取斗鱼直播平台的所有房间信息 文章目录 使用selenium自动爬取斗鱼直播平台的所有房间信息 使用selenium实现动态页面模拟点击 什么是selenium? selen ...
- PYTHON爬取斗鱼英雄联盟所有在玩adc的主播房间信息
Python爬取斗鱼英雄联盟所有玩adc的主播房间信息并用redis存储数据 最近想要用巩固下json数据的提取以及数据的存储,于是选了斗鱼作为研究对象.. 下面就是所有要爬取的adc,当然有个别ad ...
最新文章
- 使用SSM开发一个校友联络的平台系统
- GD项目回顾总结之预热
- [armv9]-Introducing-Arm-Confidential-Compute-Architecture
- 在Vue中引入Bootstrap,Font-awesome
- vue3新增Suspense组件
- 小心调用Replicator, While 和 CAG子活动
- 第4代计算机的cpu,世界最小电脑进化第四代:继续用APU
- Java开发笔记(一百四十)JavaFX的选择框
- python获取淘宝服务器时间的代码
- matlab车标识别,MATLAB车辆标识识别技术研究
- 编译龙芯PMON流程
- android手表密码忘了咋办,moto 360手表通过Android 5.0系统自动解锁手机教程
- 蓝桥杯2013届C++B组省赛真题 第39级台阶
- Spring Cloud之openfeign 处理服务平滑上下线
- ubuntu18.04 安装java
- SpringBoot在使用测试的时候是否需要@RunWith?
- 北京市财政局数据备份设备购置建设项目招标公告7,977,038.00万元
- Eclipse Memory Analyzer 使用技巧
- 数据库技术之MVCC
- python提取excel表格数据