Python——selenium爬取斗鱼房间信息
from selenium import webdriver
import os
import json
import time class Douyu:
def __init__(self):
# 1.发送首页的请求
self.driver = webdriver.Chrome('../chromedriver.exe')
self.driver.get('https://www.douyu.com/g_yz') # 获取页面内容
def get_content(self):
time.sleep(3)
li_list = self.driver.find_elements_by_xpath("//*[@class='layout-Cover-list']/li[@class='layout-Cover-item']")
length = len(li_list)
contents = [] # 遍历房间列表
for i in range(length):
item = {}
item['主播'] = self.driver.find_elements_by_xpath('//h2[@class="DyListCover-user"]')[i].text
item['房间名'] = self.driver.find_elements_by_xpath('//h3[@class="DyListCover-intro"]')[i].get_attribute(
'title')
item['热度'] = self.driver.find_elements_by_xpath('//span[@class="DyListCover-hot"]')[i].text
item['封面'] = self.driver.find_elements_by_class_name('DyImg-content')[i].get_attribute(
'src')
contents.append(item)
return contents # 保存数据到本地
def save_content(self, contents):
with open('douyu.json', 'a',encoding='utf-8') as f:
for content in contents:
json.dump(content, f, ensure_ascii=False, indent=2)
f.write(os.linesep) def run(self):
# 1.发送首页的请求:初始化时已经发送请求
# 2.获取第一页的数据
contents = self.get_content()
self.save_content(contents) # 3.循环:点击下一页按钮,只要没有下一页的按钮
while self.driver.find_elements_by_class_name('dy-Pagination-item-custom')[1]:
# 点击下一页的按钮
self.driver.find_elements_by_class_name('dy-Pagination-item-custom')[1].click()
# 4.继续获取下一页的内容
contents = self.get_content()
# 4.保存下一页保存内容
self.save_content(contents) if __name__ == '__main__':
douyu = Douyu()
douyu.run()
Python——selenium爬取斗鱼房间信息的更多相关文章
- Python+Selenium爬取动态加载页面(2)
注: 上一篇<Python+Selenium爬取动态加载页面(1)>讲了基本地如何获取动态页面的数据,这里再讲一个稍微复杂一点的数据获取全国水雨情网.数据的获取过程跟人手动获取过程类似,所 ...
- Python+Selenium爬取动态加载页面(1)
注: 最近有一小任务,需要收集水质和水雨信息,找了两个网站:国家地表水水质自动监测实时数据发布系统和全国水雨情网.由于这两个网站的数据都是动态加载出来的,所以我用了Selenium来完成我的数据获取. ...
- selenium模块使用详解、打码平台使用、xpath使用、使用selenium爬取京东商品信息、scrapy框架介绍与安装
今日内容概要 selenium的使用 打码平台使用 xpath使用 爬取京东商品信息 scrapy 介绍和安装 内容详细 1.selenium模块的使用 # 之前咱们学requests,可以发送htt ...
- Python+selenium爬取智联招聘的职位信息
整个爬虫是基于selenium和Python来运行的,运行需要的包 mysql,matplotlib,selenium 需要安装selenium火狐浏览器驱动,百度的搜寻. 整个爬虫是模块化组织的,不 ...
- 利用selenium爬取京东商品信息存放到mongodb
利用selenium爬取京东商城的商品信息思路: 1.首先进入京东的搜索页面,分析搜索页面信息可以得到路由结构 2.根据页面信息可以看到京东在搜索页面使用了懒加载,所以为了解决这个问题,使用递归.等待 ...
- Scrapy实战篇(七)之Scrapy配合Selenium爬取京东商城信息(下)
之前我们使用了selenium加Firefox作为下载中间件来实现爬取京东的商品信息.但是在大规模的爬取的时候,Firefox消耗资源比较多,因此我们希望换一种资源消耗更小的方法来爬取相关的信息. 下 ...
- 简单的python爬虫--爬取Taobao淘女郎信息
最近在学Python的爬虫,顺便就练习了一下爬取淘宝上的淘女郎信息:手法简单,由于淘宝网站本上做了很多的防爬措施,应此效果不太好! 爬虫的入口:https://mm.taobao.com/json/r ...
- 爬虫—Selenium爬取JD商品信息
一,抓取分析 本次目标是爬取京东商品信息,包括商品的图片,名称,价格,评价人数,店铺名称.抓取入口就是京东的搜索页面,这个链接可以通过直接构造参数访问https://search.jd.com/Sea ...
- python itchat 爬取微信好友信息
原文链接:https://mp.weixin.qq.com/s/4EXgR4GkriTnAzVxluJxmg 「itchat」一个开源的微信个人接口,今天我们就用itchat爬取微信好友信息,无图言虚 ...
随机推荐
- 科学计算工具Numpy简介
Numpy(Numerical Python) Numpy:提供了一个在Python中做科学计算的基础库,重在数值计算,主要用于多维数组(矩阵)处理的库.用来存储和处理大型矩阵,比Python自身的嵌 ...
- C++深度解析教程学习笔记(4)C++中的新成员
1. 动态内存分配 (1)C++通过 new 关键字进行动态内存申请,是以类型为单位来申请空间大小的 (2)delete 关键字用于内存释放 ▲注意释放数组时要加[],否则只释放这个数组中的第 1 个 ...
- 实例解说Linux命令行uniq
Linux命令uniq的作用是过滤重复部分显示文件内容,这个命令读取输入文件,并比较相邻的行.在正常情况下,第二个及以后更多个重复行将被删去,行比较是根据所用字符集的排序序列进行的.该命令加工后的结果 ...
- 15-EasyNetQ之对延迟消息插件的支持
RabbitMQ延迟消息插件仍然在实验阶段.你使用这个功能要自担风险. RabbitMQ延迟消息插件为RabbitMQ增加了新的交换机类型,允许延时消息投递. EasyNetQ为交换机通过定义一种新的 ...
- spring mvc default-servlet mvc:resources mvc:default-servlet-handler区别
mvc:default-servlet-handler其实就是default-servlet 交由web容器自己处理 mvc:resources spring来处理 没有被映射的url web容器来处 ...
- Maven 国内源
maven的仓库好慢的说,还是配置一个国内的源吧.推荐aliyun 在maven/conf/settings.xml 文件里配置mirrors的子节点,添加如下mirror <mirror> ...
- localtime 的性能问题及其替代者
在系统从redhat5升到redhat6的过程中,服务的性能差了很多.经过定位发现是程序中频繁调用localtime/localtime_r所致. 而调用localtime_r 的实现中,对时区进行了 ...
- mysql免安装版1067错误终极解决办法|在windows平台下MySql启动时的1067错误的解决方法及反思
[windows事件查看] 我的电脑--此电脑--右键管理--计算机管理--系统工具--事件查看器--Windows日志--应用程序--找错误标志,如下图 [提示] 按部就班,可能并不能解决你的问题, ...
- 中国大学MOOC 设置AutoCAD的绘图环境
- Select2 的使用
实现这个下拉列表框 下载这两个官网上的CSS,JS 官网地址 https://select2.org/getting-started/installation 我自己存的高速下载地址 http://y ...