本案例中通过两种不同的selenium作用实现了对斗鱼直播平台的房间信息进行多页爬取。

  • selenium实现信息爬取以及页面跳转功能
  • selenium实现页面跳转功能,lxml解析库实现数据爬取功能

1.selenium实现信息爬取以及页面跳转功能

# coding=utf-8
from selenium import  webdriver
import timeclass DouyuSpider:def __init__(self):self.start_url = "https://www.douyu.com/directory/all"self.driver = webdriver.Chrome()def get_content_list(self):li_list = self.driver.find_elements_by_xpath("//ul[@class='layout-Cover-list']/li")content_list = []for li in li_list:item = {}item["room_img"]=li.find_element_by_xpath(".//div[contains(@class,'LazyLoad')]/img").get_attribute("src")item["room_title"] = li.find_element_by_xpath(".//h3").get_attribute("title")item["room_cate"] = li.find_element_by_xpath(".//span[contains(@class,'DyListCover-zone')]").textitem["anchor_name"] = li.find_element_by_xpath(".//h2[@class='DyListCover-user']").textitem["watch_num"] = li.find_element_by_xpath(".//span[@class='DyListCover-hot']").textprint(item)content_list.append(item)# 获取下一页的元素next_url = self.driver.find_elements_by_xpath("//span[@class='dy-Pagination-item-custom']")next_url = next_url[1] if self.driver.find_elements_by_xpath("//span[@class='dy-Pagination-item-custom']/..")[1].get_attribute("aria-disabled") == "false" else Nonereturn content_list,next_urldef save_content_list(self,content_list):passdef run(self):#实现主要逻辑#1.start_url#2.发送请求,获取响应self.driver.get(self.start_url)#3.提取数据,提取下一页的元素content_list,next_url = self.get_content_list()#4.保存数据self.save_content_list(content_list)#5.点击下一页元素,循环while next_url is not None:next_url.click() #点击下一页print("点击成功")time.sleep(3) #会立刻提取数据,所以需要等待content_list,next_url = self.get_content_list()self.save_content_list(content_list)if __name__ == '__main__':douyu = DouyuSpider()douyu.run()
  • 数据保存部分请读者自行编写,可以选择任意输出格式

2.selenium实现页面跳转功能,lxml解析库实现数据爬取功能

# coding=utf-8
from selenium import  webdriver
import time
from lxml import etreeclass DouyuSpider:def __init__(self):self.start_url = "https://www.douyu.com/directory/all"self.driver = webdriver.Chrome()def get_content_list(self):html_data = self.driver.page_sourcedata = etree.HTML(html_data)li_list = data.xpath("//ul[@class='layout-Cover-list']/li")content_list = []for li in li_list:item = {}item["room_img"]=li.xpath(".//div[contains(@class,'LazyLoad')]/img/@src")item["room_title"] = li.xpath(".//h3/@title")item["room_cate"] = li.xpath(".//span[contains(@class,'DyListCover-zone')]/text()")item["anchor_name"] = li.xpath(".//h2[@class='DyListCover-user']/text()")item["watch_num"] = li.xpath(".//span[@class='DyListCover-hot']/text()")print(item)content_list.append(item)# 获取下一页的元素next_url = self.driver.find_elements_by_xpath("//span[@class='dy-Pagination-item-custom']")next_url = next_url[1] if self.driver.find_elements_by_xpath("//span[@class='dy-Pagination-item-custom']/..")[1].get_attribute("aria-disabled") == "false" else Nonereturn content_list,next_urldef save_content_list(self,content_list):passdef run(self):#实现主要逻辑#1.start_url#2.发送请求,获取响应self.driver.get(self.start_url)#3.提取数据,提取下一页的元素content_list,next_url = self.get_content_list()#4.保存数据self.save_content_list(content_list)#5.点击下一页元素,循环while next_url is not None:next_url.click() #点击下一页print("点击成功")time.sleep(3) #会立刻提取数据,所以需要等待content_list,next_url = self.get_content_list()self.save_content_list(content_list)if __name__ == '__main__':douyu = DouyuSpider()douyu.run()

经典爬虫学习(四)-selsenium实现斗鱼直播房间信息爬取相关推荐

  1. Scrapy项目 - 数据简析 - 实现斗鱼直播网站信息爬取的爬虫设计

    一.数据分析截图(weka数据分析截图 2-3个图,作业文字描述) 本次将所爬取的数据信息,如:房间数,直播类别和人气,导入Weka 3.7工具进行数据分析.有关本次的数据分析详情详见下图所示:   ...

  2. 使用seleniumphantomjs+bs4抓取斗鱼直播房间信息

    使用selenium&phantomjs+bs4抓取斗鱼直播房间信息 # -*- coding:utf-8 -*-from selenium import webdriver from bs4 ...

  3. 爬虫第三弹:图灵社区书籍信息爬取

    爬虫第三弹:图灵社区书籍信息爬取 一.目的:将图灵社区所有书籍的网址.书籍名称,作者,译者,阅读数,标签,出版日期,定价,页数,印刷方式,出版状态全部爬取下来存入mysql数据库,并导出xml格式,最 ...

  4. scrapy 斗鱼 主播信息爬取

    原文链接: scrapy 斗鱼 主播信息爬取 上一篇: scrapy 妹子图网站 全站图片爬取 下一篇: TensorFlow models 的slim 模块 使用预训练模型进行识别 api http ...

  5. python爬斗鱼直播_python selenium爬取斗鱼所有直播房间信息过程详解

    还是分析一下大体的流程: 发现所有房间的信息都是保存在一个无序列表中的li中,所以我们可以先获取一个装有li的element对象的列表,然后在对每个element逐一操作 分析斗鱼的翻页,有一个下一页 ...

  6. python网络爬虫学习笔记(十一):Ajax数据爬取

    文章目录 1.基本介绍 2.基本原理 3.实战 有时候我们在用requests抓取页面的时候,得到的结果可能和在浏览器中看到的不一样:在浏览器中可以看到正常显示的页面数据,但是使用requests得到 ...

  7. 【python实现网络爬虫(4)】实习僧网站信息爬取(字体反爬虫破解)

    实习僧网站 实习僧网址,地址为北京,在搜索框输入"python",如下 实战解析 步骤一.建立for循环爬取前20页的内容 首先.查看翻页URL的信息,找规律 第一页:https: ...

  8. python爬取游戏数据,Python 爬虫之好游快爆游戏排行信息爬取

    爬取思路 1.获取人气排行榜信息页面,从中提取到每个游戏url 2.把获取到的url加入到队列中 3.从队列中获取url 进行请求获取详情页 4.从详情页获取信息,提取到游戏的信息以及评论信息 代码实 ...

  9. Python 爬虫小练习:基于 XPath 的表格信息爬取

    文章目录 确定目标和分析思路 目标 思路 观察情况 爬取名单表 爬取详情页二级信息 爬虫请遵守相关法律法规,不要做违法犯罪的事情 爬虫小技巧总结 这是一个 Python 爬虫的入门练习,我们通过 Re ...

最新文章

  1. css 科技 边框_CSS 边框
  2. 2019-11-13 有趣的网站(持续更新)
  3. python字符复制函数是啥_Python最全的字符和字符串函数,直接复制到IDLE或另存为py可以运行...
  4. Linux系统【四】进程间通信-管道
  5. 寻路之 A* 搜寻算法
  6. 程序员应该学会自我学习
  7. nyoj--77--开灯问题
  8. Tortoise svn 基础知识
  9. 看《Java就业培训教程》--孙孝祥著有读书笔记
  10. [图文]Chrome四步下载斗鱼视频(直播回放)视频
  11. Excel 数据透视表小技巧之 05 如何计算重复项,一个包含重复的邮政编码列表,需要每个邮政编码有多少个实例(教程含数据)
  12. buuctf——(HDCTF2019)Maze
  13. 微信小程序加载效果和取消加载效果
  14. net.sf.json.JSONObject实现Object对象与Json字符串的互转
  15. 利用Matlab设计滤波器(FDAT) .
  16. 你听播客吗?聊聊最近大火的声音经济
  17. 发送内容让Android手机QQ崩溃
  18. 智慧药店管理系统升级智慧药房管理更轻松
  19. 几个“快递偏门”赚钱方法!
  20. DLL/EXE查看工具Dumpbin

热门文章

  1. 枚举注解反射整合详解
  2. Oracle dba_tablespace_usage_metrics 视图 查看表空间 说明
  3. Django数据库交互
  4. iPhone已停用,如何解锁iPhone
  5. OC语言笔记(三):OC数组和字典
  6. 解决 Initialization failed for 'https://start.spring.io/' (一般为网络不稳定) 在网页上创建module 以及手动添加module模块
  7. 有了浅拷贝VS深拷贝,面试官问起来都忘不了
  8. 【JAVA-编程】Javaassist-总结
  9. 51单片机入门之开关控制
  10. OSI七层模型英汉名称