爬虫中使用selenium实现对斗鱼直播的各个房间标题、主播id,直播内容类型和热度信息的爬取

每日分享:

千万不要因为别人的否定就开始自我否定,人生本来就是一个主观的过程,别人是否喜欢你,其实是对方世界的事,所以面对别人的不喜欢,不要自卑不要刻意讨好,你要专注的做自己

思路分析:

  1. url(网页的url)
  2. 创建driver对象
  3. 发送get请求
  4. parse data(分析处理数据)
  5. save data(保存数据)
  6. 翻页

在一个循环中反复执行4、5、6操作,如果到最后一页则跳出循环。

再说一些我写代码遇到的一些问题:

  1. 用xpath可以找到你想找的元素,但如果要对其进行点击操作,需要先下滑页面至页面内有该元素之后才可以点击
  2. 关于斗鱼中每个房间的封面图片的爬取,花了很多时间尝试,感觉应该设置有反爬,直接爬取,爬到了三张图片,后来设置了休眠时间,爬到图片多了几张,20s爬一张也只爬了不到十张。(因为自己也是初学者,还没有学习反爬、反反爬,所以就放弃了)
  3. 下滑操作前的time.sleep(1)是一定要写的(休眠时间自己设定),当时我是在这卡了很长的时间,因为发现网页并不下滑,所以也导致“下一页“这个元素点击失败。如果不设置休眠一秒,仔细看会发现,并不是页面不下滑,是页面下滑了之后又回到了顶部,可能这是一种反爬吧。
  4. 建议下一页的xpath自己用一个靠谱的方法写,比如用内容查找;当时直接复制的标签的xpath,翻页到第四页就
好的,我们可以使用Python语言结合SeleniumBeautifulSoup库来实现爬取动态页面的技术。以下是示例程序: ```python from selenium import webdriver from bs4 import BeautifulSoup # 实例化一个浏览器对象 driver = webdriver.Chrome() # 打开斗鱼直播平台 driver.get("https://www.douyu.com/directory/all") # 等待页面加载完成 driver.implicitly_wait(10) # 获取页面源代码 html = driver.page_source # 使用BeautifulSoup解析页面 soup = BeautifulSoup(html, "html.parser") # 找到所有房间标题观众人数 rooms = soup.find_all("div", {"class": "DyListCover-info"}) # 打印所有房间标题观众人数 for room in rooms: title = room.find("h3").text.strip() view_count = room.find("span", {"class": "DyListCover-hot"}).text.strip() print(title + " - " + view_count) # 关闭浏览器 driver.quit() ``` 解释一下程序的实现过程: 1. 导入需要用到的库:SeleniumBeautifulSoup。 2. 实例化一个Chrome浏览器对象。 3. 打开斗鱼直播平台。 4. 等待页面加载完成,使用`implicitly_wait()`函数等待10秒。 5. 获取页面源代码,使用`page_source`属性获取。 6. 使用BeautifulSoup解析页面,指定解析器为`"html.parser"`。 7. 找到所有房间标题观众人数,使用`find_all()`函数查找所有class为`"DyListCover-info"`的div元素。 8. 遍历所有房间,找到标题观众人数,使用`find()`函数查找对应元素。 9. 打印所有房间标题观众人数。 10. 关闭浏览器,使用`quit()`函数退出浏览器。 注意:运行程序前需要先安装Chrome浏览器对应版本的ChromeDriver,并将ChromeDriver所在路径添加到系统环境变量中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值