使用selenium&phantomjs+bs4抓取斗鱼直播房间信息

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

使用selenium&phantomjs+bs4抓取斗鱼直播房间信息

# -*- coding:utf-8 -*-

from selenium import webdriver
from bs4 import BeautifulSoup
import time


class DouyuSpider(object):
    def __init__(self):
        self.base_url = "https://www.douyu.com/directory/all"
        # 浏览器对象
        self.driver = webdriver.PhantomJS()
        # 房间总数
        self.count = 0
        # 总页数
        self.page = 1

    def send_request(self):
        self.driver.get(self.base_url)

        # 什么时候结束 class = shark-pager-disable-next 有则结束,没有则继续循环
        while True:
            print '正在下载第%d页' % self.page
            time.sleep(1)
            self.page += 1
            data = self.driver.page_source
            self.parse_data(data)

            # 字符串查找find shark-pager-disable-next
            if data.find('shark-pager-disable-next') != -1:
                break

            # 点击下一页,继续获取数据
            self.driver.find_element_by_class_name('shark-pager-next').click()

    def parse_data(self, data):
        bs = BeautifulSoup(data, 'lxml')

        # 解析
        # 房间名字
        home_list = bs.select('#live-list-content .ellipsis')
        # 主播名字
        name_list = bs.select('#live-list-content .dy-name')
        # 房间人气
        pop_list = bs.select('#live-list-content .dy-num')

        for home, name, pop in zip(home_list, name_list, pop_list):
            print home.get_text().strip()
            print name.get_text()
            print pop.get_text()

            self.count += 1

        print self.count


if __name__ == '__main__':
    spider = DouyuSpider()
    spider.send_request()
目录
相关文章
|
5月前
|
数据采集 Web App开发 JavaScript
利用Selenium和XPath抓取JavaScript动态加载内容的实践案例
利用Selenium和XPath抓取JavaScript动态加载内容的实践案例
|
3月前
|
数据采集 Web App开发 JavaScript
Selenium爬虫技术:如何模拟鼠标悬停抓取动态内容
本文介绍了如何使用Selenium爬虫技术抓取抖音评论,通过模拟鼠标悬停操作和结合代理IP、Cookie及User-Agent设置,有效应对动态内容加载和反爬机制。代码示例展示了具体实现步骤,帮助读者掌握这一实用技能。
138 0
Selenium爬虫技术:如何模拟鼠标悬停抓取动态内容
|
3月前
|
Web App开发 Java 测试技术
使用selenium+chromedriver+xpath爬取动态加载信息(一)
使用selenium+chromedriver+xpath爬取动态加载信息(一)
98 1
|
3月前
使用selenium+chromedriver+xpath爬取动态加载信息(二)
使用selenium+chromedriver+xpath爬取动态加载信息(二)
58 0
|
5月前
|
数据采集 Python
如何用Python Selenium和WebDriver抓取LinkedIn数据并保存登录状态
本文介绍了使用Python Selenium和WebDriver库抓取LinkedIn数据的方法。首先,安装Selenium库和对应的WebDriver,然后配置爬虫代理IP以避免频繁请求被检测。接下来,设置user-agent和cookies以模拟真实用户行为,实现登录并保持状态。登录后,使用WebDriver抓取目标页面数据,如用户名、年龄、性别和简历信息。最后,强调了优化代码、处理异常和遵守使用条款的重要性,以提高效率并避免账号被封禁。
117 2
如何用Python Selenium和WebDriver抓取LinkedIn数据并保存登录状态
|
7月前
|
数据采集 Web App开发 数据处理
一步步教你用Python Selenium抓取动态网页任意行数据
使用Python Selenium爬取动态网页,结合代理IP提升抓取效率。安装Selenium,配置代理(如亿牛云),设置User-Agent和Cookies以模拟用户行为。示例代码展示如何使用XPath提取表格数据,处理异常,并通过隐式等待确保页面加载完成。代理、模拟浏览器行为和正确配置增强爬虫性能和成功率。
820 3
一步步教你用Python Selenium抓取动态网页任意行数据
|
8月前
|
数据采集 Web App开发 JavaScript
Selenium与PhantomJS:自动化测试与网页爬虫的完美结合
Selenium与PhantomJS:自动化测试与网页爬虫的完美结合
|
数据采集 Web App开发 存储
Java爬虫第五篇:使用selenium、Jsoup 抓取bing搜索图片
Java爬虫第五篇:使用selenium、Jsoup 抓取bing搜索图片
320 0
|
数据采集 Web App开发 存储
Java爬虫第四篇:使用selenium、Jsoup 抓取图片
Java爬虫第四篇:使用selenium、Jsoup 抓取图片
580 0

热门文章

最新文章