直播信号

可以看到有标题,类型,姓名,以及热度,我们爬取这四个字段就行
然后滑到底部,这里的下一页是我们控制爬取页数的
注意:当我们进入页面时,虽然有滚动条,但所有直播信息已经加载好,并不是通过滑动然后Ajax加载的,所以在代码中并不需要写滑动,直接提取就可以拿到整个页面的数据。
1.解析数据的函数
#解析数据的函数
def parse(self):
#强制等待两秒,等待页面数据加载完毕
sleep(2)
li_list = self.bro.find_elements_by_xpath(‘//*[@id=“listAll”]/section[2]/div[2]/ul/li’)
#print(len(li_list))
data_list = []
for li in li_list:
dic_data = {}
dic_data[‘title’] = li.find_element_by_xpath(‘./div/a/div[2]/div[1]/h3’).text
dic_data[‘name’] = li.find_element_by_xpath(‘./div/a/div[2]/div[2]/h2/div’).text
dic_data[‘art_type’] = li.find_element_by_xpath(‘./div/a/div[2]/div[1]/span’).text
dic_data[‘hot’] = li.find_element_by_xpath(‘./div/a/div[2]/div[2]/span’).text
data_list.append(dic_data)
return data_list
2.保存数据的函数
(1)保存为txt文本
#保存数据的函数
def save_data(self,data_list,i):
#在当前目录下将数据存为txt文件
with open(‘./douyu.txt’,‘w’,encoding=‘utf-8’) as fp:
for data in data_list:
data = str(data)
fp.write(data+‘
’)
print(“第%d页保存完成!” % i)
(2)保存为json文件
#保存数据的函数
def save_data(self,data_list,i):
with open(‘./douyu.json’,‘w’,encoding=‘utf-8’) as fp:
#里面有中文,所以注意ensure_ascii=False
data = json.dumps(data_list,ensure_ascii=False)
fp.write(data)
print(“第%d页保存完成!” % i)
3.主函数设计
#主函数
def run(self):
#输入要爬取的页数,如果输入负整数,转化成她的绝对值
page_num = abs(int(input(“请输入你要爬取的页数:”)))
#初始化页数为1
i = 1
#判断输入的数是否为整数
if isinstance(page_num,int):
#实例化浏览器对象
self.bro = webdriver.Chrome(executable_path=‘…/…/可执行文件/chromedriver.exe’)
self.bro.get(self.url)
while i <= page_num:
#调用解析函数
data_list = self.parse()
#调用保存函数
self.save_data(data_list,i)
try:
#定位包含“下一页”字段的按钮并点击
button = self.bro.find_element_by_xpath(‘//span[contains(text(),“下一页”)]’)
button.click()
i += 1
except:
break
self.bro.quit()
else:
print(“输入格式错误!”)
四、完整代码
======
from selenium import webdriver
from time import sleep
import json
#创建一个类
class Douyu():
def init(self):
self.url = ‘https://www.douyu.com/directory/all’
#解析数据的函数
def parse(self):
#强制等待两秒,等待页面数据加载完毕
sleep(2)
li_list = self.bro.find_elements_by_xpath(‘//*[@id=“listAll”]/section[2]/div[2]/ul/li’)
#print(len(li_list))
data_list = []
for li in li_list:
dic_data = {}
dic_data[‘title’] = li.find_element_by_xpath(‘./div/a/div[2]/div[1]/h3’).text
dic_data[‘name’] = li.find_element_by_xpath(‘./div/a/div[2]/div[2]/h2/div’).text
dic_data[‘art_type’] = li.find_element_by_xpath(‘./div/a/div[2]/div[1]/span’).text
dic_data[‘hot’] = li.find_element_by_xpath(‘./div/a/div[2]/div[2]/span’).text
data_list.append(dic_data)
return data_list
#保存数据的函数
def save_data(self,data_list,i):
#在当前目录下将数据存为txt文件
with open(‘./douyu.txt’,‘w’,encoding=‘utf-8’) as fp:
for data in data_list:
data = str(data)
fp.write(data+‘
’)
print(“第%d页保存完成!” % i)
#主函数
def run(self):
#输入要爬取的页数,如果输入负整数,转化成她的绝对值
page_num = abs(int(input(“请输入你要爬取的页数:”)))
#初始化页数为1
i = 1
#判断输入的数是否为整数
if isinstance(page_num,int):
#实例化浏览器对象
self.bro = webdriver.Chrome(executable_path=‘…/…/可执行文件/chromedriver.exe’)
self.bro.get(self.url)
while i <= page_num:
#调用解析函数
data_list = self.parse()
#调用保存函数
self.save_data(data_list,i) 青岛西海岸比赛分析
try:
#定位包含“下一页”字段的按钮并点击
button = self.bro.find_element_by_xpath(‘//span[contains(text(),“下一页”)]’)
button.click()
i += 1
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
结尾
正式学习前端大概 3 年多了,很早就想整理这个书单了,因为常常会有朋友问,前端该如何学习,学习前端该看哪些书,我就讲讲我学习的道路中看的一些书,虽然整理的书不多,但是每一本都是那种看一本就秒不绝口的感觉。
以下大部分是我看过的,或者说身边的人推荐的书籍,每一本我都有些相关的推荐语,如果你有看到更好的书欢迎推荐呀。
戳这里免费领取前端学习资料
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
结尾
正式学习前端大概 3 年多了,很早就想整理这个书单了,因为常常会有朋友问,前端该如何学习,学习前端该看哪些书,我就讲讲我学习的道路中看的一些书,虽然整理的书不多,但是每一本都是那种看一本就秒不绝口的感觉。
以下大部分是我看过的,或者说身边的人推荐的书籍,每一本我都有些相关的推荐语,如果你有看到更好的书欢迎推荐呀。
戳这里免费领取前端学习资料

成都蓉城VS山东泰山直播_成都蓉城VS山东泰山免费直播在线直播

河南VS浙江直播_河南VS浙江直播观看免费_河南VS浙江

青岛西海岸VS上海申花直播_青岛西海岸VS上海申花免费高清在线直播_青岛西海岸VS上海申花免费直播视频直播

辽宁铁人VS上海海港直播_辽宁铁人VS上海海港直播免费观看_辽宁铁人VS上海海港直播无插件观看

阿森纳VS巴黎圣日耳曼直播_阿森纳VS巴黎圣日耳曼免费直播在线直播

浙江广厦VS辽宁本钢直播_浙江广厦VS辽宁本钢直播观看免费_浙江广厦VS辽宁本钢

雷霆VS马刺直播_雷霆VS马刺免费高清在线直播_雷霆VS马刺免费直播视频直播

骑士VS尼克斯直播_骑士VS尼克斯直播免费观看_骑士VS尼克斯直播无插件观看

越南VS中国直播_越南VS中国免费直播在线直播

水晶宫VS巴列卡诺直播_水晶宫VS巴列卡诺直播观看免费_水晶宫VS巴列卡诺

05月20日 英超第37轮 伯恩茅斯vs曼城 全场录像回放
2026年05月25日
05月20日 英超第37轮 切尔西vs热刺 全场录像回放
2026年05月25日
05月19日 英超第37轮 阿森纳vs伯恩利 全场录像回放
2026年05月25日
05月18日 英超第37轮 纽卡斯尔联vsv西汉姆联 全场录像回放
2026年05月25日
05月17日 英超第37轮 利兹联vs布莱顿 全场录像回放
2026年05月25日
05月17日 英超第37轮 狼队vs富勒姆 全场录像回放
2026年05月25日
05月17日 英超第37轮 埃弗顿vs桑德兰 全场录像回放
2026年05月25日
05月17日 英超第37轮 布伦特福德vs水晶宫 全场录像回放
2026年05月25日
05月17日 英超第37轮 曼联vs诺丁汉森林 全场录像回放
2026年05月25日
05月16日 英超第37轮 阿斯顿维拉vs利物浦 全场录像回放
2026年05月25日
05月12日 英超第36轮 热刺vs利兹联 全场录像回放
2026年05月25日
05月10日 英超第36轮 西汉姆联vs阿森纳 全场录像回放
2026年05月25日
05月10日 英超第36轮 诺丁汉森林vs纽卡斯尔联 全场录像回放
2026年05月25日
05月10日 英超第36轮 水晶宫vs埃弗顿 全场录像回放
2026年05月25日
05月10日 英超第36轮 伯恩利vs阿斯顿维拉 全场录像回放
2026年05月25日
05月16日 德甲第34轮 柏林联合vs奥格斯堡 全场录像回放
2026年05月25日
05月16日 德甲第34轮 门兴vs霍芬海姆 全场录像回放
2026年05月25日
05月16日 德甲第34轮 海登海姆vs美因茨 全场录像回放
2026年05月25日
05月16日 德甲第34轮 弗赖堡vs莱比锡 全场录像回放
2026年05月25日
05月16日 德甲第34轮 圣保利vs沃尔夫斯堡 全场录像回放
2026年05月25日
05月16日 德甲第34轮 勒沃库森vs汉堡 全场录像回放
2026年05月25日
05月16日 德甲第34轮 法兰克福vs斯图加特 全场录像回放
2026年05月25日
05月16日 德甲第34轮 不莱梅vs多特蒙德 全场录像回放
2026年05月25日
05月11日 德甲第33轮 美因茨vs柏林联合 全场录像回放
2026年05月25日
05月10日 德甲第33轮 科隆vs海登海姆 全场录像回放
2026年05月25日
05月10日 德甲第33轮 汉堡vs弗赖堡 全场录像回放
2026年05月25日
05月18日 法甲第34轮 斯特拉斯堡vs摩纳哥 全场录像回放
2026年05月25日
05月18日 法甲第34轮 洛里昂vs勒阿弗尔 全场录像回放
2026年05月25日
05月18日 法甲第34轮 马赛vs雷恩 全场录像回放
2026年05月25日
05月18日 法甲第34轮 巴黎FCvs巴黎圣日耳曼 全场录像回放
2026年05月25日
05月18日 法甲第34轮 里尔vs欧塞尔 全场录像回放
2026年05月25日
05月18日 法甲第34轮 尼斯vs梅斯 全场录像回放
2026年05月25日
05月18日 法甲第34轮 布雷斯特vs昂热 全场录像回放
2026年05月25日
05月14日 法甲第29轮补赛 朗斯vs巴黎圣日耳曼 全场录像回放
2026年05月25日
05月14日 法甲第29轮 布雷斯特vs斯特拉斯堡 全场录像回放
2026年05月25日
05月11日 法甲第33轮 图卢兹vs里昂 全场录像回放
2026年05月25日
05月11日 法甲第33轮 雷恩vs巴黎FC 全场录像回放
2026年05月25日
05月11日 法甲第33轮 巴黎圣日耳曼vs布雷斯特 全场录像回放
2026年05月25日
05月11日 法甲第33轮 摩纳哥vs里尔 全场录像回放
2026年05月25日
05月11日 法甲第33轮 梅斯vs洛里昂 全场录像回放
2026年05月25日
05月11日 法甲第33轮 勒阿弗尔vs马赛 全场录像回放
2026年05月25日
05月24日 西甲第38轮 瓦伦西亚vs巴塞罗那 全场录像回放
2026年05月25日
05月24日 西甲第38轮 皇家马德里vs毕尔巴鄂竞技 全场录像回放
2026年05月25日
05月18日 西甲第37轮 巴塞罗那vs皇家贝蒂斯 全场录像回放
2026年05月25日
05月18日 西甲第37轮 塞维利亚vs皇家马德里 全场录像回放
2026年05月25日
05月18日 西甲第37轮 皇家社会vs瓦伦西亚 全场录像回放
2026年05月25日
05月18日 西甲第37轮 巴列卡诺vs比利亚雷亚尔 全场录像回放
2026年05月25日
05月18日 西甲第37轮 皇家奥维耶多vs阿拉维斯 全场录像回放
2026年05月25日
05月18日 西甲第37轮 奥萨苏纳vs西班牙人 全场录像回放
2026年05月25日
05月18日 西甲第37轮 莱万特vs马略卡 全场录像回放
2026年05月25日
05月18日 西甲第37轮 埃尔切vs赫塔费 全场录像回放
2026年05月25日
05月18日 西甲第37轮 马德里竞技vs赫罗纳 全场录像回放
2026年05月25日
05月18日 西甲第37轮 毕尔巴鄂竞技vs塞尔塔 全场录像回放
2026年05月25日
05月15日 西甲第36轮 皇家马德里vs皇家奥维耶多 全场录像回放
2026年05月25日
05月15日 西甲第36轮 赫罗纳vs皇家社会 全场录像回放
2026年05月25日
05月14日 西甲第36轮 赫塔费vs马略卡 全场录像回放
2026年05月25日
05月24日 意甲第38轮 博洛尼亚vs国际米兰 全场录像回放
2026年05月25日
05月18日 意甲第37轮 萨索洛vs莱切 全场录像回放
2026年05月25日
05月18日 意甲第37轮 乌迪内斯vs克雷莫内塞 全场录像回放
2026年05月25日
05月18日 意甲第37轮 卡利亚里vs都灵 全场录像回放
2026年05月25日
05月18日 意甲第37轮 亚特兰大vs博洛尼亚 全场录像回放
2026年05月25日
05月17日 意甲第37轮 国际米兰vs维罗纳 全场录像回放
2026年05月25日
05月17日 意甲第37轮 罗马vs拉齐奥 全场录像回放
2026年05月25日
05月17日 意甲第37轮 比萨vs那不勒斯 全场录像回放
2026年05月25日
05月17日 意甲第37轮 尤文图斯vs佛罗伦萨 全场录像回放
2026年05月25日
05月17日 意甲第37轮 热那亚vsAC米兰 全场录像回放
2026年05月25日
05月12日 意甲第36轮 那不勒斯vs博洛尼亚 全场录像回放
2026年05月25日
05月11日 意甲第36轮 AC米兰vs亚特兰大 全场录像回放
2026年05月25日
05月11日 意甲第36轮 帕尔马vs罗马 全场录像回放
2026年05月25日
05月10日 意甲第36轮 佛罗伦萨vs热那亚 全场录像回放
2026年05月25日
05月30日 WNBA常规赛 菲尼克斯水星vs纽约自由人 全场录像回放
2026年06月08日
05月27日 NBA西部决赛G5 马刺vs雷霆 全场录像回放
2026年06月08日
05月29日 NBA西部决赛G6 雷霆vs马刺 全场录像回放
2026年06月08日
05月11日 NBA季后赛西部半决赛G4 马刺vs森林狼 全场录像回放
2026年05月25日
05月11日 NBA季后赛东部半决赛G4 尼克斯vs76人 全场录像回放
2026年05月25日
05月10日 NBA季后赛西部半决赛G3 雷霆vs湖人 全场录像回放
2026年05月25日
05月10日 NBA季后赛东部半决赛G3 活塞vs骑士 全场录像回放
2026年05月25日
05月09日 NBA季后赛西部半决赛G3 马刺vs森林狼 全场录像回放
2026年05月25日
05月09日 NBA季后赛东部半决赛G3 尼克斯vs76人 全场录像回放
2026年05月25日
05月08日 NBA季后赛西部半决赛G2 湖人vs雷霆 全场录像回放
2026年05月25日
05月08日 NBA季后赛东部半决赛G2 骑士vs活塞 全场录像回放
2026年05月25日
05月07日 NBA季后赛东部半决赛G2 76人vs尼克斯 全场录像回放
2026年05月25日
05月06日 NBA季后赛西部半决赛G1 湖人vs雷霆 全场录像回放
2026年05月25日
05月06日 NBA季后赛东部半决赛G1 骑士vs活塞 全场录像回放
2026年05月25日
05月05日 NBA季后赛西部半决赛G1 森林狼vs马刺 全场录像回放
2026年05月25日