Python 爬虫利器 Selenium

前面几节,咱们学习了用 requests 构造页面请求来爬取静态网页中的信息以及经过 requests 构造 Ajax 请求直接获取返回的 JSON 信息。html

还记得前几节,咱们在构造请求时会给请求加上浏览器 headers,目的就是为了让咱们的请求模拟浏览器的行为,防止被网站的反爬虫策略限制。今天要介绍的 Selenium 是一款强大的工具,它能够控制咱们的浏览器,这样一来程序的行为就和人类彻底同样了。python

经过使用 Selenium 能够解决几个问题:web

  • 页面内容是由 JavaScript 动态生成,经过 requests 请求页面没法获取内容。
  • 爬虫程序被反爬虫策略限制
  • 让程序的行为和人同样
  1. 安装

    pip install seleniumchrome

  2. 安装浏览器驱动

    驱动下载地址浏览器

    下载后把驱动文件加入环境变量。或者直接把驱动文件和 Python脚本放到同一文件夹下面工具

  3. 测试
    安装完成后,能够编写如下脚原本测试是否安装成功。学习

    from selenium import webdriver
    driver = webdriver.Chrome()  # 建立一个 Chrome WebDriver 实例
    driver.get('https://www.baidu.com/')  # 打开网址

    运行后会发现程序自动打开了 Chrome 浏览器,而且定向到了百度首页。测试

  4. 与页面交互
    WebDriver定义了不少方法,咱们能够很方便的操做页面上的元素
    好比获取元素,能够经过 driver.find_element_by_id("id")或者driver.find_element_by_name("name")以及 xpath路径的方式来获取元素。能够经过send_keys 向输入框中写入文本。网站

    from selenium import webdriver
    driver = webdriver.Chrome()
    driver.get('https://www.baidu.com/')
    search_input = driver.find_element_by_id("kw") # 获取到百度搜索框
    search_input.send_keys("刘亦菲")  # 自动输入 刘亦菲
    submit = driver.find_element_by_id("su")  # 获取到百度一下按钮
    submit.click()  # 点击搜索

    运行以上脚本,程序会自动打开 Chrome 浏览器,并自动搜索 刘亦菲google

  5. 其余操做
    Selenium 能够进行各类各样的操做,使程序彻底符合人类的操做习惯。下面看一下还有哪些功能。

    图片描述

    具体能够看官方文档,这里贴一下地址
    https://selenium-python-zh.readthedocs.io/en/latest/index.html

相关文章
相关标签/搜索