zoukankan      html  css  js  c++  java
  • python爬虫之selenium,谷歌无头浏览器

    python爬虫之selenium和PhantomJS
    主要的内容

    ​ selenium

    ​ phantomjs

    谷歌无头浏览器

    ​ 图片的懒加载

    一 什么是selenium?
    介绍

    它是python中的一个第三方库,对外提供的接口可以操作浏览器,然后让浏览器完成自动化的操作。

    安装
    pip install selenium
    

    !!!这里需要注意的是:要是安装了还是无法使用这个模块

    1551530870409

    报这个错误的时候,那么步骤如下

    1 进入到Anaconda Navigator这个软件

    1551530916994

    2 进入之后,点击base中的第一个 进入终端

    1551531124315

    3 进入该界面,在进行下载pip install selenium

    1551531223593

    4 在次去使用 就不会报错啦!!!!

    如何使用selenium 进行操作呢?

    1 获取某一款浏览器的驱动程序(这里我以谷歌浏览器为例)

    ​ 谷歌浏览器的驱动下载地址:

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

    2 如何选择版本号下载,这里下载的驱动程序必须和浏览器的版本统一,可以通过这个网址中提供的版本映射表进行对应

    先查看自己谷歌浏览器中的版本信息,然后通过映射表进行相应的下载即可

    http://blog.csdn.net/huilan_same/article/details/51896672
    

    需求 使用selenium打开百度

    from selenium import webdriver
    from time import sleep
    #驱动路径 记得前面加r 防止字符转义
    #!!!注意这里必须把驱动程序中的路径写完整,后面必须加上这个chromedriver.exe  否则会报错 执行不成功
    driver = webdriver.Chrome('C:pacong_dataday3chromedriver.exe')
    #用driver打开百度页面  后面的地址是百度的地址
    driver.get('http://www.baidu.com')
    # 查找页面的“设置”选项,发送一个你要搜索的值,并进行点击
    driver.find_element_by_id('kw').send_keys('人民币')
    sleep(2)
    #并进行点击
    driver.find_element_by_id('su').click()
    sleep(2)
    #退出驱动程序
    driver.quit()
    
    
    
    #使用下面的方法,查找指定的元素进行操作即可
        find_element_by_id            根据id找节点
        find_elements_by_name         根据name找
        find_elements_by_xpath        根据xpath查找
        find_elements_by_tag_name     根据标签名找
        find_elements_by_class_name   根据class名字查找
    
    二 phantomjs

    PhantomJS是一款无界面的浏览器,其操作与上述的操作基本上是一致的,由于无界面,为了我们能够清楚的看到她的自动化操作流程,它为用户提供了一个截屏的功能,使用save_screenshot函数实现。

    phantomjs实现无界面的操作
    from selenium import webdriver
    import time
    
    #PhantomJS是一个无头界面的浏览器
    #!!!!注意这里的路径是PhantomJS存放的路径
    browser = webdriver.PhantomJS(r'C:pacong_dataday3phantomjs-2.1.1-windowsinphantomjs.exe')
    
    url ='http://www.baidu.com/'
    browser.get(url)
    time.sleep(3)
    
    #进入百度界面    然后截屏
    browser.save_screenshot(r'phantomjsaidu.png')
    
    
    bd_input = browser.find_element_by_id('kw').send_keys('小猪配齐')
    #在此截屏
    browser.save_screenshot(r'phantomjsxiaozhu.png')
    time.sleep(3)
    
    bd_sous = browser.find_element_by_id('su').click()
    在此截屏
    browser.save_screenshot(r'phantomjssous.png')
    time.sleep(3)
    
    browser.quit()
    
    谷歌无头浏览器(是一款无界面的浏览器)
    import time
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    #这个是一个用来控制chrome以无界面模式打开的浏览器
    #创建一个参数对象,用来控制chrome以无界面的方式打开
    chrome_options = Options()
    #后面的两个是固定写法 必须这么写
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--disable-gpu')
    
    #驱动路径 谷歌的驱动存放路径
    path = r'C:pacong_dataday3chromedriver.exe'
    
    #创建浏览器对象
    
    browser = webdriver.Chrome(executable_path=path,chrome_options=chrome_options)
    
    url ='http://www.baidu.com/'
    
    browser.get(url)
    time.sleep(3)
    browser.save_screenshot('baid.png')
    
    browser.quit()
    
    
  • 相关阅读:
    013.ES6 -对象字面量增强型写法
    012. ES6
    011. ES6 语法
    10. 9. Vue 计算属性的setter和getter 以及 计算属性的缓存讲解
    4. Spring MVC 数据响应方式
    3. SpringMVC 组件解析
    9. Vue 计算属性
    【洛谷 2984】给巧克力
    【洛谷 1821】捉迷藏 Hide and Seek
    【洛谷 1821】银牛派对Silver Cow Party
  • 原文地址:https://www.cnblogs.com/mlhz/p/10462963.html
Copyright © 2011-2022 走看看