python3 selenium模拟登陆斗鱼提取数据保存数据库
# coding=utf-8
from selenium import webdriver
import json
import time
import pymongo
class Douyu:
def __init__(self):
self.driver = webdriver.Chrome()
# 发送首页请求
self.driver.get("https://www.douyu.com/directory/all")
self.host = '127.0.0.1'
self.port = 27017
self.DBname = 'douyu'
def get_content(self):
time.sleep(3)
li_list = self.driver.find_elements_by_xpath('//ul[@id="live-list-contentbox"]/li')
# print(li_list)
contents = []
# 遍历房间列表
for i in li_list:
item = {}
# 获取房间图片
item['img'] = i.find_element_by_xpath('./a//img').get_attribute("src")
# 获取房间名字
item['title'] = i.find_element_by_xpath('./a').get_attribute("title")
# 获取房间分类
item['category'] = i.find_element_by_xpath('./a/div[@class="mes"]/div/span').text
# 获取主播名字
item['name'] = i.find_element_by_xpath("./a/div[@class='mes']/p/span[1]").text
# 观看人数
item['watch_num'] = i.find_element_by_xpath("./a/div[@class='mes']/p/span[2]").text
# print(item)
contents.append(item)
return contents
# 保存到MongoDB
def save_content(self, contents):
# 创建MongoDB连接
client = pymongo.MongoClient(host=self.host, port=self.port)
# 指向指定的数据库
mdb = client[self.DBname]
self.post = mdb[self.DBname]
self.post.insert(contents)
# 保存到本地
# def save_content(self, contents):
# with open("douyu.json", "a") as f:
# for content in contents:
# json.dump(content, f, ensure_ascii=False, indent=2)
# f.write(',\n')
def run(self):
# 1.发送首页请求
# 2.获取首页信息
contents = self.get_content()
# 3.保存内容
self.save_content(contents)
# 4.循环 点击下一页按钮,直到下一页对应的class名字不再是"shark-pager-next"
# 判断有没有下一页
while self.driver.find_element_by_class_name("shark-pager-next"):
# 5.点击下一页按钮
self.driver.find_element_by_class_name("shark-pager-next").click()
# 6.获取下一页的内容
contents = self.get_content()
# 7.保存内容
self.save_content(contents)
if __name__ == '__main__':
douyu = Douyu()
douyu.run()
python3 selenium模拟登陆斗鱼提取数据保存数据库的更多相关文章
- Python3 使用selenium库登陆知乎并保存cookie为本地文件
Python3 使用selenium库登陆知乎并保存cookie为本地文件 学习使用selenium库模拟登陆知乎,并将cookie保存为本地文件,然后供以后(requests模块)使用,用selen ...
- selenium 模拟登陆豆瓣,爬取武林外传的短评
selenium 模拟登陆豆瓣,爬去武林外传的短评: 在最开始写爬虫的时候,抓取豆瓣评论,我们从F12里面是可以直接发现接口的,但是最近豆瓣更新,数据是JS异步加载的,所以没有找到合适的方法爬去,于是 ...
- php中CURL技术模拟登陆抓取数据实战,抓取某校教务处学生成绩。
这两天有基友要php中curl抓取教务处成绩的源码,用于微信公众平台的开发.下面笔者只好忍痛割爱了.php中CURL技术模拟登陆抓取数据实战,抓取沈阳工学院教务处学生成绩. 首先,教务处登录需要验证码 ...
- Selenium模拟登陆百度贴吧
Selenium模拟登陆百度贴吧 from selenium import webdriver from time import sleep from selenium.webdriver.commo ...
- Python3.x:定时获取页面数据存入数据库
Python3.x:定时获取页面数据存入数据库 #间隔五分钟采集一次数据入库 import pymysql import urllib.request from bs4 import Beautifu ...
- 使用selenium模拟登陆淘宝、新浪和知乎
如果直接使用selenium访问淘宝.新浪和知乎这些网址.一般会识别出这是自动化测试工具,会有反制措施.当开启开发者模式后,就可以绕过他们的检测啦.(不行的,哭笑) 如果网站只是对windows.na ...
- Python爬虫 —— 知乎之selenium模拟登陆获取cookies+requests.Session()访问+session序列化
代码如下: # coding:utf-8 from selenium import webdriver import requests import sys import time from lxml ...
- 使用selenium模拟登陆新浪微博
1.selenium基本使用 1.selenium安装及基本操作 selenium是一个自动化测试工具,它支持各种浏览器,包括Chrome,Safari,Firefox等主流界面浏览器驱动,也包括Ph ...
- 验证码破解 | Selenium模拟登陆微博
模拟登陆微博相对来说,并不难.验证码是常规的5个随机数字字母的组合,识别起来也比较容易.主要是用到许多Selenium中的知识,如定位标签.输入信息.点击等.如对Selenium的使用并不熟悉,请先移 ...
随机推荐
- 【ASP.NET MVC】jqGrid 增删改查详解
1 概述 本篇文章主要是关于JqGrid的,主要功能包括使用JqGrid增删查改,导入导出,废话不多说,直接进入正题. 2 Demo相关 2.1 Demo展示 第一部分 第二部分 2.2 ...
- Google赛马分析
原题 想必田忌赛马的故事,大家都耳熟能详.但是,大家知道Goolge的童鞋们是怎么赛马的么?不过,首先,大家要先尝试一下:有25匹马,每次只能五匹一起跑,那么最少跑几次,才能确定前三甲呢? 分析 这样 ...
- 详细分析apache httpd反向代理的用法
html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...
- python之decode、encode及codecs模块
一.先说说编解码问题 编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码. Eg: str ...
- 让asp.net网站支持多语言,使用资源文件
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs&quo ...
- C# winform小票打印
(1)自定义纸张设置 控制面板->打印机和传真->右键->服务器属性->创建新的格式 (2)自定义纸张使用 this.printDocument1.DefaultPageSet ...
- XtraReports 入门教程
一个链接:http://www.cnblogs.com/springSky/tag/XtraReports%20%E5%85%A5%E9%97%A8%E6%95%99%E7%A8%8B/ 与之相同功能 ...
- win10 uwp smms图床
本文,如何使用smms图床上传图片,用到win10 uwp post文件,因为我是渣渣,如果本文有错的,请和我说,在本文评论,或发给我邮箱lindexi_gd@163.com,请不要发不良言论 找到一 ...
- 虚拟机VMware-workstation-full-12.5.2安装注册方法(附安装包下载链接)
首先,需要下载好虚拟机的安装包: 链接:http://pan.baidu.com/s/1mix3fFa 密码:6ftu 下载好后,双击安装程序,弹出安装界面,然后按照红色圈圈的指示进行安装操作,完成安 ...
- USACO奶牛博览会(DP)
Description 奶牛想证明他们是聪明而风趣的.为此,贝西筹备了一个奶牛博览会,她已经对N头奶牛进行了面试,确定了每头奶牛的智商和情商. 贝西有权选择让哪些奶牛参加展览.由于负的智商或情商会造成 ...