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

Posted xpwi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

  • 案例 29chromedriver.py 代码文件:
    https://xpwi.github.io/py/py%E7%88%AC%E8%99%AB/py29chromedriver.py
# 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爬虫教程-28-Selenium 操纵 Chrome的主要内容,如果未能解决你的问题,请参考以下文章

2019最新Python学习教程(Python学习路线_Python爬虫教程)爬虫工程师必备的10个爬虫工具

崔庆才python爬虫教程

15《Python 原生爬虫教程》爬虫和反爬虫

Python爬虫入门教程:超级简单的Python爬虫教程

python爬虫教程:《利用Python爬取表情包》

python爬虫入门教程全集