【Python3 爬虫】U30_selenium初识

selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器)。
selenium 可以根据我们的指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏,或者判断网站上某些动作是否发生。
selenium 自己不带浏览器,不支持浏览器的功能,它需要与第三方浏览器结合在一起才能使用。但是我们有时候需要让它内嵌在代码中运行,所以我们可以用一个叫PhantomJS 的工具代替真实的浏览器。
selenium库下载地址https://pypi.python.org/simple/selenium

1.selenium + chromedriver获取动态数据

selenium相当于一个机器人。可以模拟人类在浏览器上的一些行为,自动处理浏览器上的一些行为,比如:点击、填充数据、删除Cookie等。chromedriver是一个驱动Chrome的浏览器驱动程序,使用它才能驱动浏览器。针对不同的浏览器有不同的driver:
Chrome:https://sites.google.com/a/chromium.org/chromedriver/downloads
Firefox:https://github.com/mozilla/geckodriver/releases
Edge:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
Safari:https://webkit.org/blog/6900/webdriver-support-in-safari-10/

2.安装selenium和chromedriver

2.1 安装selenium

# 安装
pip install selenium

selenium的官网地址:http://selenium-python.readthedocs.io/index.html

2.2 安装chromedriver

上述提供的网址需要翻墙才能下载,此处提供一个不用翻墙的网址:http://chromedriver.storage.googleapis.com/index.html
或者使用
http://npm.taobao.org/mirrors/chromedriver/也可以下载

下载完成后,放到不需要权限纯英文目录下

注意:可能找不到64位的软件,也可以使用同版本的32位的,也是能正常运行的。

3.入门

现在以一个简单的获取百度首页的案例进行演示

# Author:Logan
# Date:2020/4/8  10:29
# IDE:PyCharm
from selenium import webdriver

# chromedriver的绝对路径

driver_path = r'D:Pythonchromedriver.exe'

# 初始化一个driver,并且指定chromedriver的路径

driver = webdriver.Chrome(executable_path=driver_path)

# 请求网页

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

# 通过page_source获取网页源代码

print(driver.page_source)

4.selenium关闭页面和退出浏览器

  • 关闭页面:driver.close()
  • 退出浏览器:driver.quit()

实战演练:

# Author:Logan
# Date:2020/4/8  10:29
# IDE:PyCharm
from selenium import webdriver
import time
# chromedriver的绝对路径

driver_path = r'D:Pythonchromedriver.exe'

# 初始化一个driver,并且指定chromedriver的路径

driver = webdriver.Chrome(executable_path=driver_path)

# 请求网页

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

# 2秒后关闭页面
# 注:为了看到关闭浏览器的效果,打开后可以手工新打开一个标签页,由于谷歌浏览器在只有一个页面的情况下,关闭页面会自动退出浏览器
time.sleep(2)
driver.close()

# 3秒后关闭浏览器
time.sleep(3)
driver.quit()
原文地址:https://www.cnblogs.com/OliverQin/p/12658661.html