一、需求

爬取斗鱼直播网站信息,如直播名字、主播名字、热度、图片和房间网址,将这些数据保存到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爬取斗鱼直播网站信息相关推荐

  1. Python爬取斗鱼直播信息

    一.需求 爬取斗鱼直播网站信息,如直播名字.主播名字.热度.图片和房间网址,将这些数据保存到csv文件中,并单独创建文件夹保存图片. 斗鱼直播网址:https://www.douyu.com/g_LO ...

  2. 使用scrapy爬取斗鱼直播间信息

    目录 1. 谷歌抓包工具的使用 1.1 打开Chrome开发者工具的方法 1.2 开发者工具的结构 1.3 network模块 2. 使用谷歌抓包工具抓取斗鱼数据 3. 使用scrapy爬取斗鱼直播间 ...

  3. 利用斗鱼api学习爬取斗鱼直播间信息

    python爬取斗鱼房间的弹幕 斗鱼弹幕服务api:https://open.douyu.com/source/api/63 基本步骤: 连接斗鱼api服务器 构造登录请求 进入房间并构造获取弹幕请求 ...

  4. Requests爬取斗鱼直播列表信息

    实现简单小爬虫,爬取斗鱼直播页面所有当前在线直播列表信息 文章目录 1 目标分析 2 分析URL 2.1 分析首页URL 2.2 分析换页URL 2.3 确定爬取URL 3 代码 4 总结 1 目标分 ...

  5. 利用Python爬虫爬取斗鱼直播间信息,以及直播的实际人数!

    首先我准备利用mysql来存储我爬取的信息,建一个host表如下: 然后下载pymysql ,利用它与数据库链接,因为在这里我只涉及到写入的操作: Unit_Mtsql 然后就是使用Beautiful ...

  6. 利用python爬取某直播网站实时弹幕并分析

    这里写自定义目录标题 技术选择以及思路 分析 好久没来这个破站更新了,看着充斥着各种CV操作的csdn,质量已经越来越差,但作为在这获得过帮助的人,理应也做几个原创帮点小忙.之前刚好有说要一个弹幕机器 ...

  7. python 使用selenium爬取斗鱼直播房间信息

    用到的模块 今天没课,开启正片 selenium 打开浏览器提取数据 time 每打开一个页面睡眠几秒,防止太快报错还有被发现 json 写入文件要用到 完整代码如下(为了减少代码就不使用类了) fr ...

  8. 使用selenium自动爬取斗鱼直播平台的所有房间信息

    使用selenium自动爬取斗鱼直播平台的所有房间信息 文章目录 使用selenium自动爬取斗鱼直播平台的所有房间信息 使用selenium实现动态页面模拟点击 什么是selenium? selen ...

  9. PYTHON爬取斗鱼英雄联盟所有在玩adc的主播房间信息

    Python爬取斗鱼英雄联盟所有玩adc的主播房间信息并用redis存储数据 最近想要用巩固下json数据的提取以及数据的存储,于是选了斗鱼作为研究对象.. 下面就是所有要爬取的adc,当然有个别ad ...

最新文章

  1. 使用SSM开发一个校友联络的平台系统
  2. GD项目回顾总结之预热
  3. [armv9]-Introducing-Arm-Confidential-Compute-Architecture
  4. 在Vue中引入Bootstrap,Font-awesome
  5. vue3新增Suspense组件
  6. 小心调用Replicator, While 和 CAG子活动
  7. 第4代计算机的cpu,世界最小电脑进化第四代:继续用APU
  8. Java开发笔记(一百四十)JavaFX的选择框
  9. python获取淘宝服务器时间的代码
  10. matlab车标识别,MATLAB车辆标识识别技术研究
  11. 编译龙芯PMON流程
  12. android手表密码忘了咋办,moto 360手表通过Android 5.0系统自动解锁手机教程
  13. 蓝桥杯2013届C++B组省赛真题 第39级台阶
  14. Spring Cloud之openfeign 处理服务平滑上下线
  15. ubuntu18.04 安装java
  16. SpringBoot在使用测试的时候是否需要@RunWith?
  17. 北京市财政局数据备份设备购置建设项目招标公告7,977,038.00万元
  18. Eclipse Memory Analyzer 使用技巧
  19. 数据库技术之MVCC
  20. python提取excel表格数据

热门文章

  1. 计算机监控系统功能概述,物联网技术在计算机监控系统的应用
  2. Google 桌面搜索的使用
  3. 关于 Spfile文件误删除 或者 优化错误 恢复
  4. exit和_exit,fock和vfock
  5. 怎么使用mp3转换器将mp4转换mp3格式
  6. BBP Formula HDU6217
  7. SpringBoot时区问题解决,彻底解决时差问题
  8. 【运动规划】RRT快速搜索随机树 Rapidly Exploring Random Tree
  9. HNUSTOJ 部分源码
  10. 中标麒麟龙芯桌面版重置root密码