• Python爬虫教程-28-Selenium 操纵 Chrome


    我觉得本篇是很有意思的,闲着没事来看看!

    Python爬虫教程-28-Selenium 操纵 Chrome

    PhantomJS 幽灵浏览器,无界面浏览器,不渲染页面。Selenium + PhantomJS 在之前是很完美的搭配。后来在 2017 年 Google 宣布 Chrome 也宣布支持不渲染。所以 PhantomJS 使用的人就越来越少了,挺可惜,本篇介绍 Selenium + Chrome

    安装Chrome浏览器和 Chromedriver

    • 安装 Chrome 浏览器就不介绍了
    • 安装 Chromedriver:
    • 注意:Chromedriver 需要根据自己的 Chrome 版本下载:
      • Chromedriver 所有版本下载地址:http://npm.taobao.org/mirrors/chromedriver/
      • 兼容版本请参照:Chrome版本与chromedriver兼容版本对照表
      • 下载解压即可,当然如果你解压到自己定义的目录,就需要配置一下环境,去环境变量,在 Path 加一条 Chromedriver 的安装目录
      • 如果你嫌配置环境变量太麻烦,就直接把它放到一个已经配置好环境变量的目录,比如 C:Program Files (x86)

    安装 Chromedriver-binary 包

    • 【PyCharm】>【file】>【settings】>【Project Interpreter】>【+】 >【BeautifulSoup4】>【install】
    • 具体操作截图:
      这里写图片描述
      安装好就可以尽情使用了

    Selenium 操作

    • Selenium 操作主要分两大类:
      • 得到 UI 元素
        • find_element_by_id
        • find_elements_by_name
        • find_elements_by_xpath
        • find_elements_by_link_text
        • find_elements_by_partial_link_text
        • find_elements_by_tag_name
        • find_elements_by_class_name
        • find_elements_by_css_selector
      • 基于 UI 元素操作的模拟
        • 单击
        • 右键
        • 拖拽
        • 输入
        • 可以通过 ActionsChains类来做到

    案例 29chromedriver

    # Selenium + Chrome 案例1
    from selenium import webdriver
    
    # 路径是自己解压安装 Chromedriver 的路径
    driver = webdriver.Chrome()
    
    url = "http://www.baidu.com"
    
    driver.get(url)
    
    # 根据id查找,后面加.text 表示拿看到的文本数据
    text = driver.find_element_by_id('wrapper').text
    print(text)
    

    运行结果

    1.控制台:打印出来了我们想要的能看到的文本
    这里写图片描述
    2.我们可以看到:执行程序自动打开了一个 Chrome 浏览器的窗口,并提示 Chrome 正受到自动检测软件的控制
    这里写图片描述
    此时,既然已经控制了浏览器,我们就可以进行更多操作了

    重要案例 29chromedriver2.py

    # Selenium + Chrome 案例2
    # 打开的浏览器可能会弹窗,点击【取消】或者【不管它】都行
    from selenium import webdriver
    import time
    from selenium.webdriver.common.keys import Keys
    
    # 默认不需要路径,如果没有环境变量就需要加上
    driver = webdriver.Chrome()
    
    url = "http://www.baidu.com"
    
    driver.get(url)
    
    # 根据id查找,后面加.text 表示拿看到的文本数据
    text = driver.find_element_by_id('wrapper').text
    
    print(driver.title)
    
    # 对页面截屏,保存为 baidu.png
    driver.save_screenshot('py29baidu.png')
    
    # 控制 Chrome 在输入框输入大熊猫
    driver.find_element_by_id('kw').send_keys(u"大熊猫")
    # 单击搜索按钮,id = 'su'
    driver.find_element_by_id('su').click()
    
    # 缓冲5秒,让页面加载图片等
    time.sleep(5)
    # 截屏,保存
    driver.save_screenshot("py29daxiongmao.png")
    
    # 获取当前页面的 cookie 常用在需要登录的页面
    print(driver.get_cookie('cookie'))
    
    # 模拟 按下两个按键 Ctrl + a
    driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'a')
    # 模拟 按下两个按键 Ctrl + c
    driver.find_element_by_id('kw').send_keys(Keys.CONTROL, 'c')
    

    运行结果

    运行代码,会自动打开浏览器,自动输入大熊猫,自动截屏并保存,然后选中输入框内容,然后拷贝
    这里写图片描述
    是不是很神奇,保存的截屏和代码同级目录

    更多文章链接:Python 爬虫随笔


    - 本笔记不允许任何个人和组织转载
  • 相关阅读:
    Getting started with the Web ADF
    将搜狗浏览器设置为IIS的默认浏览器
    What is installed with the Web ADF?
    如何修改Flex的默认浏览器
    What is the Web Application Developer Framework
    windows C++获得本地IP地址
    lua table函数库
    【铸铁】C++服务器面试题.doc
    VC2008下提示找不到MSVCP90D.dll的解决办法
    排序
  • 原文地址:https://www.cnblogs.com/xpwi/p/9601015.html
Copyright © 2020-2023  润新知