经典爬虫学习(四)-selsenium实现斗鱼直播房间信息爬取
本案例中通过两种不同的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实现斗鱼直播房间信息爬取相关推荐
- Scrapy项目 - 数据简析 - 实现斗鱼直播网站信息爬取的爬虫设计
一.数据分析截图(weka数据分析截图 2-3个图,作业文字描述) 本次将所爬取的数据信息,如:房间数,直播类别和人气,导入Weka 3.7工具进行数据分析.有关本次的数据分析详情详见下图所示: ...
- 使用seleniumphantomjs+bs4抓取斗鱼直播房间信息
使用selenium&phantomjs+bs4抓取斗鱼直播房间信息 # -*- coding:utf-8 -*-from selenium import webdriver from bs4 ...
- 爬虫第三弹:图灵社区书籍信息爬取
爬虫第三弹:图灵社区书籍信息爬取 一.目的:将图灵社区所有书籍的网址.书籍名称,作者,译者,阅读数,标签,出版日期,定价,页数,印刷方式,出版状态全部爬取下来存入mysql数据库,并导出xml格式,最 ...
- scrapy 斗鱼 主播信息爬取
原文链接: scrapy 斗鱼 主播信息爬取 上一篇: scrapy 妹子图网站 全站图片爬取 下一篇: TensorFlow models 的slim 模块 使用预训练模型进行识别 api http ...
- python爬斗鱼直播_python selenium爬取斗鱼所有直播房间信息过程详解
还是分析一下大体的流程: 发现所有房间的信息都是保存在一个无序列表中的li中,所以我们可以先获取一个装有li的element对象的列表,然后在对每个element逐一操作 分析斗鱼的翻页,有一个下一页 ...
- python网络爬虫学习笔记(十一):Ajax数据爬取
文章目录 1.基本介绍 2.基本原理 3.实战 有时候我们在用requests抓取页面的时候,得到的结果可能和在浏览器中看到的不一样:在浏览器中可以看到正常显示的页面数据,但是使用requests得到 ...
- 【python实现网络爬虫(4)】实习僧网站信息爬取(字体反爬虫破解)
实习僧网站 实习僧网址,地址为北京,在搜索框输入"python",如下 实战解析 步骤一.建立for循环爬取前20页的内容 首先.查看翻页URL的信息,找规律 第一页:https: ...
- python爬取游戏数据,Python 爬虫之好游快爆游戏排行信息爬取
爬取思路 1.获取人气排行榜信息页面,从中提取到每个游戏url 2.把获取到的url加入到队列中 3.从队列中获取url 进行请求获取详情页 4.从详情页获取信息,提取到游戏的信息以及评论信息 代码实 ...
- Python 爬虫小练习:基于 XPath 的表格信息爬取
文章目录 确定目标和分析思路 目标 思路 观察情况 爬取名单表 爬取详情页二级信息 爬虫请遵守相关法律法规,不要做违法犯罪的事情 爬虫小技巧总结 这是一个 Python 爬虫的入门练习,我们通过 Re ...
最新文章
- css 科技 边框_CSS 边框
- 2019-11-13 有趣的网站(持续更新)
- python字符复制函数是啥_Python最全的字符和字符串函数,直接复制到IDLE或另存为py可以运行...
- Linux系统【四】进程间通信-管道
- 寻路之 A* 搜寻算法
- 程序员应该学会自我学习
- nyoj--77--开灯问题
- Tortoise svn 基础知识
- 看《Java就业培训教程》--孙孝祥著有读书笔记
- [图文]Chrome四步下载斗鱼视频(直播回放)视频
- Excel 数据透视表小技巧之 05 如何计算重复项,一个包含重复的邮政编码列表,需要每个邮政编码有多少个实例(教程含数据)
- buuctf——(HDCTF2019)Maze
- 微信小程序加载效果和取消加载效果
- net.sf.json.JSONObject实现Object对象与Json字符串的互转
- 利用Matlab设计滤波器(FDAT) .
- 你听播客吗?聊聊最近大火的声音经济
- 发送内容让Android手机QQ崩溃
- 智慧药店管理系统升级智慧药房管理更轻松
- 几个“快递偏门”赚钱方法!
- DLL/EXE查看工具Dumpbin
热门文章
- 枚举注解反射整合详解
- Oracle dba_tablespace_usage_metrics 视图 查看表空间 说明
- Django数据库交互
- iPhone已停用,如何解锁iPhone
- OC语言笔记(三):OC数组和字典
- 解决 Initialization failed for 'https://start.spring.io/' (一般为网络不稳定) 在网页上创建module 以及手动添加module模块
- 有了浅拷贝VS深拷贝,面试官问起来都忘不了
- 【JAVA-编程】Javaassist-总结
- 51单片机入门之开关控制
- OSI七层模型英汉名称