from selenium import webdriver
from bs4 import BeautifulSoup
import time if __name__ == '__main__':
driver = webdriver.PhantomJS()
driver.get("https://www.douyu.com/directory/all")
count = 0 # 总页数
total = 0 # 房间数
time.sleep(5)
while True: # 判断是否到达尾页,如果是true,则推出循环
attr = driver.find_element_by_css_selector(".dy-Pagination-next").get_attribute("aria-disabled")
if "true" in attr:
break
try:
page_count = 0 # 记录每页多少条数据
# 解析html
soup = BeautifulSoup(driver.page_source, "lxml")
names = soup.find_all("h2", attrs={"class": "DyListCover-user"})
looks = soup.find_all("span", attrs={"class": "DyListCover-hot"})
for name, look in zip(names, looks):
print("房间:" + name.get_text() + "\t人数:" + look.get_text())
total += 1
page_count += 1
count += 1
print("==================第%s页,每页%s条数据==================" % (str(count), str(page_count)))
# 保存每一页的图片
driver.save_screenshot("./douyu/douyu_%s.png" % str(count))
# 点击下一页
driver.find_element_by_css_selector(".dy-Pagination-next").click()
# 等待数据加载完毕
time.sleep(3)
except RuntimeError as e:
print(e)
print("总页数:" + str(count))
print("总房间数:" + str(total))

结果如图:

Python 之selenium+phantomJS斗鱼抓取案例的更多相关文章

  1. 数据抓取的艺术(一):Selenium+Phantomjs数据抓取环境配置

     数据抓取的艺术(一):Selenium+Phantomjs数据抓取环境配置 2013-05-15 15:08:14 分类: Python/Ruby     数据抓取是一门艺术,和其他软件不同,世界上 ...

  2. Python开发爬虫之动态网页抓取篇:爬取博客评论数据——通过Selenium模拟浏览器抓取

    区别于上篇动态网页抓取,这里介绍另一种方法,即使用浏览器渲染引擎.直接用浏览器在显示网页时解析 HTML.应用 CSS 样式并执行 JavaScript 的语句. 这个方法在爬虫过程中会打开一个浏览器 ...

  3. Selenium模拟浏览器抓取淘宝美食信息

    前言: 无意中在网上发现了静觅大神(崔老师),又无意中发现自己硬盘里有静觅大神录制的视频,于是乎看了其中一个,可以说是非常牛逼了,让我这个用urllib,requests用了那么久的小白,体会到sel ...

  4. 使用selenium模拟浏览器抓取淘宝信息

    通过Selenium模拟浏览器抓取淘宝商品美食信息,并存储到MongoDB数据库中. from selenium import webdriver from selenium.common.excep ...

  5. python网络爬虫-动态网页抓取(五)

    动态抓取的实例 在开始爬虫之前,我们需要了解一下Ajax(异步请求).它的价值在于在与后台进行少量的数据交换就可以使网页实现异步更新. 如果使用Ajax加载的动态网页抓取,有两种方法: 通过浏览器审查 ...

  6. python爬虫beta版之抓取知乎单页面回答(low 逼版)

    闲着无聊,逛知乎.发现想找点有意思的回答也不容易,就想说要不写个爬虫帮我把点赞数最多的给我搞下来方便阅读,也许还能做做数据分析(意淫中--) 鉴于之前用python写爬虫,帮运营人员抓取过京东的商品品 ...

  7. 利用python脚本(xpath)抓取数据

    有人会问re和xpath是什么关系?如果你了解js与jquery,那么这个就很好理解了. 上一篇:利用python脚本(re)抓取美空mm图片 # -*- coding:utf-8 -*- from ...

  8. Python爬虫实战四之抓取淘宝MM照片

    原文:Python爬虫实战四之抓取淘宝MM照片其实还有好多,大家可以看 Python爬虫学习系列教程 福利啊福利,本次为大家带来的项目是抓取淘宝MM照片并保存起来,大家有没有很激动呢? 本篇目标 1. ...

  9. Python爬虫实战六之抓取爱问知识人问题并保存至数据库

    大家好,本次为大家带来的是抓取爱问知识人的问题并将问题和答案保存到数据库的方法,涉及的内容包括: Urllib的用法及异常处理 Beautiful Soup的简单应用 MySQLdb的基础用法 正则表 ...

随机推荐

  1. MS SQL SERVER 书BOOK

    http://www.cnblogs.com/lyhabc/p/4833248.html

  2. ZMQ源代码分析(一)-- 基础数据结构的实现

    yqueue 和 ypipe zmq号称是"史上最快的消息队列",由此可见zmq中最重要的数据结构就是队列. zmq的队列主要由yqueue和ypipe实现.yqueue是队列的基 ...

  3. [Vue @Component] Control Template Contents with Vue's Render Function

    Declaring templates and elements inside of templates works great for most scenarios. Sometimes you n ...

  4. activeMQ启动失败61616port被占用问题

    Failed t bind to server socket:tcp://localhost:61616 due to : java.net.BindException 通过netstat -aon ...

  5. CentOS6.5下用Git克隆代码(https方式)

    一.首先最好保证GIT是最新版 查看GIT命令 $ git --version 有关git的安装,应该有好多文章介绍.注意更新之后,要重启系统,否则显示的版本号,还是老版本. 二.如果工作环境存在网络 ...

  6. python pass 的用法

    python pass用法 1.空语句 do nothing 2.保证格式完整 3.保证语义完整 4.以if语句为例: C/C++中写法: if(true) ; // do nothing else ...

  7. sizeof中的表达式不执行

    char a = 255;      printf("%d\n",a);    printf("%d\n",sizeof(++a));      printf( ...

  8. 创建 /dev/video0 节点 (转载)

    转自:http://blog.csdn.net/linuxmake/article/details/8208464 最近做摄像头驱动,发现没有 /dev/video0节点,经过查看发现是内核编译时没有 ...

  9. JavaScript--提问(prompt 消息对话框)

    prompt弹出消息对话框,通常用于询问一些需要与用户交互的信息.弹出消息对话框(包含一个确定按钮.取消按钮与一个文本输入框). 语法: prompt(str1, str2); 参数说明: str1: ...

  10. 题解报告:hdu 1213 How Many Tables

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1213 Problem Description Today is Ignatius' birthday. ...