美文网首页我爱编程
ubutun爬取动态网页-selenium

ubutun爬取动态网页-selenium

作者: 落寞_IT | 来源:发表于2017-06-09 09:54 被阅读0次

安装

首先安装selenium:

  pip install selenium

谷歌浏览器驱动下载:

  chromedriver所有版本下载url:

  http://chromedriver.storage.googleapis.com/index.html

  谷歌浏览器 与 插件chromedriver版本对应

  (Session info: chrome=57)

  (Driver info: chromedriver=2.25 , platform=Linux 4.2.0-42-generic x86_64)

环境设置:

  将下载好的浏览器驱动chromedriver,移到谷歌安装文件夹下 /opt/google/chrome/

  驱动设置权限 chmod  777  chromedriver

程序中谷歌驱动环境设置(必须引用),解决以下报错:

[ Error ] selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home

import  os

from  selenium  import  webdriver

def  chromeDriver( ) :

  #设置环境变量,打开谷歌浏览器

  chromedriver = '/opt/google/chrome/chromedriver'

  os.environ[ 'webdriver.chrome.driver' ]  =  chromedriver

  return  webdriver.Chrome(chromedriver)

简单实例

打开百度网页,该实例selenium 会打开浏览器窗口模拟浏览器,每次去请求url都会打开谷歌浏览器的百度网址,当打开浏览器时,你不能进行别的操作,比较繁琐,以下方案很好解决这个问题.

[必须引用上面的谷歌驱动环境设置代码]

import  os

import  time

from  selenium  import  webdriver

def  chromeDriver( ) :

  chromedriver = '/opt/google/chrome/chromedriver'

  os.environ[ 'webdriver.chrome.driver' ]  =  chromedriver

  return  webdriver.Chrome(chromedriver)

if  __name__ == '__main__' :

  driver =  chromeDriver( )

  # url = http/https+域名

       driver.get('https://www.baidu.com')

  time.sleep(1)

  # 获取网页渲染后的html源代码

  print  driver.page_source

  driver.quit( )

* selenium 不打开浏览器窗口模拟浏览器 *

安装模块

  sudo  apt-get  install  xvfb


  sudo  pip  install  pyvirtualdisplay


#coding:utf-8

import os

import time

from pyvirtualdisplay import Display

from selenium import webdriver

def chromeDriver():

  chromedriver = '/opt/google/chrome/chromedriver'

  os.environ['webdriver.chrome.driver'] = chromedriver

  return webdriver.Chrome(chromedriver)

if  __name__ == '__main__' :

  url = "http://www.baidu.com"

  '''

    不显示浏览器窗口的两种方法:Display( )参数可无,但最好带参数

    [1]with Display(backend="xvfb", size=(1024, 768)):

    [2]display = Display(visible=0, size=(1024, 768))

       display.start()

  '''

  with Display(backend="xvfb", size=(1440, 900)):

    driver = chromeDriver()

    # 浏览器窗口最大化显示

    driver.maximize_window()

    driver.get(url)

    # 打开浏览器时打印提醒

    print 'Opening Google browser...'  

    # .py文件路径下保存浏览器页面为test.png

    driver.get_screenshot_as_file("test.png")

    time.sleep(3)

    #获取网页渲染后的html源代码

    print  driver.page_source

    driver.quit()

  

相关文章

  • ubutun爬取动态网页-selenium

    安装 首先安装selenium:pip install selenium谷歌浏览器驱动下载:chromedrive...

  • Scrapy Splash

    Scrapy Splash 用来爬取动态网页,其效果和scrapy selenium phantomjs一样,都是...

  • 爬取动态网页python+Web kit

    上一篇文章爬取动态网页python+selenium+webdriver介绍了爬取动态网站的一种模拟浏览器的方法,...

  • Python分布式动态页面爬虫研究

    Selenium的Webdriver爬取动态网页效果虽然不错,但效率方面并不如人意。最近一直研究如何提高动态页面爬...

  • selenium模块实现浏览器自动登录并获取数据

    selenium模块被传扬的神乎其神,究竟是神马浮云? 1 了解网页结构 动态网页一些复杂的网页,要爬取的数据不在...

  • Scrapy+Selenium+Headless Chrome的

    前言 展示如何使用Scrapy爬取静态数据和Selenium+Headless Chrome爬取JS动态生成的数据...

  • Python Selenium模块学习

    简介 Selenium是一个自动web测试模块!可以通过调用浏览器来进行网络爬虫(爬取动态网页)! 准备 使用pi...

  • python

    今天又开始学习爬虫了,好多东西都忘了。明天试试用selenium爬取动态网页,然后把大数据分析的文本去重完成。

  • selenium被识别为爬虫怎么办

    selenium可以用来爬取动态渲染的网页,但是有一些网站会识别到你是爬虫程序,它们是依靠什么什么来判断的呢? 一...

  • python 结合selenium+PhantomJS爬取王者荣

    作为一个爬虫小白,学完了爬取静态网页的基本思路和相关库,于是便开始着手学习如何爬取动态页面。动态网页的定义,在这里...

网友评论

    本文标题:ubutun爬取动态网页-selenium

    本文链接:https://www.haomeiwen.com/subject/tfszfxtx.html