一、需求

爬取斗鱼直播网站信息,如直播名字、主播名字、热度、图片和房间网址,将这些数据保存到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. 【Python爬虫】爬取斗鱼直播信息(Fiddler抓包分析)

    大年初七了还不开始学习嘛? 过年期间一直再在看斗鱼直播平台的直播,学习主播的操作(骚套路)想着等有机会也来实战一波.看着看着就很想分析一下到底哪些主播观看的人数比较多,又为啥会有这么多人看.所以我们就 ...

  3. python selenium加bs4批量爬取斗鱼直播信息

    from selenium import webdriver from bs4 import BeautifulSoup import time # 返回Phantomjs对象 driver = we ...

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

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

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

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

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

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

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

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

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

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

  9. 实时爬取斗鱼直播时的弹幕消息

    最近想爬取实时消息,上网查了下,所以爬取斗鱼直播的弹幕消息做了下练习,这个开源的代码有很多,但是具体是怎么爬取到的还是要仔细地研究下.想爬取斗鱼的弹幕消息,按照常用的做法是打开网页用抓包工具抓包,但是 ...

最新文章

  1. 泛函编程(19)-泛函库设计-Parallelism In Action
  2. Python3引号创建字符串
  3. 体二极管的原理及应用
  4. 什么是 StackBlitz 的 web container
  5. 自己写的简易多任务系统---基于pic18fxxx
  6. 【Java】二维码生成,QRcode
  7. Android App层通过JNI从驱动获取Input Event
  8. android 上传图片给js,安卓中HTML5图片上传实例详解
  9. Kafka 麒麟先生_近百位超人气嘉宾出席元旦萤火虫,重磅新企划蓄势待发!
  10. Unity3D面试题汇总
  11. 老旧小区智慧用电改造方案
  12. 三月主题读书整理——整理收纳,过心动生活
  13. Hyper-V下Centos7连接不上外网
  14. Linux命令速查---kalrry
  15. 攻防世界——web新手题
  16. 转载《利用Windows系统自带命令手工搞定病毒》_原水_新浪博客
  17. 二十年后我发明了保姆机器人作文_未来的保姆机器人作文
  18. HGAME 2023 Week1
  19. 面向游戏玩家的六款最佳Linux发行版
  20. 元宇宙+教育,究竟是什么?学校可以怎么做?

热门文章

  1. 计算机毕业设计ssm农村地产物品交易网站mg72q系统+程序+源码+lw+远程部署
  2. PP-OCRV3使用教程
  3. 黑马学成在线-内容管理
  4. 3D建模的培训机构一般多少钱?
  5. template with C linkage解决方法
  6. ArFi光刻胶市场现状及未来发展趋势分析
  7. 支付系统高可用架构设计,写得太好了!(建议收藏)
  8. 我的电磁学讲义14:动生电动势和感生电动势
  9. ubuntu下hadoop,spark配置
  10. latex使用bibtex引用时出现问好(?)如何解决,报错I couldn‘t open style file sn-mathphys.bst