selenium初探

selenium简介与安装

简介

selenium是一个网站的自动化测试库,但由于其具有大量的自动化库而且可以调用浏览器,常常被用于爬虫技术。也正是因为其是调用浏览器的,这几乎成了一个无解的爬虫。在神经网络领域需要大量的数据集,爬虫是一种快速获得数据的方法,这也正是我学习这个库的动机

安装

selenium安装

使用pip install -U selenium即可

Diver安装

selenium要调用各种浏览器需要对应的浏览器driver,我将使用chrome测试,测试成功后转为无界面的PhontomJS。使用Chrome需要将对应的driver下载后复制到Python的安装文件夹下,使用PhontomJS则直接将.exe文件复制到Python安装文件夹下即可

selenium基本操作

浏览器操作

导入库

1
from selenium import webdriver

打开浏览器

1
2
driver = webdriver.PhantomJS() #打开PhantomJS浏览器
driver = webdriver.Chrome() #打开Chrome浏览器

访问网页

1
driver.get(url)

访问网址为url的网站,若使用Chrome将看到打开的浏览器跳转到指定的url

交互操作

获得表单元素

1
2
3
name_field = driver.find_element_by_id("username")
submit_button = driver.find_element_by_tag_name("button")
submit_button = driver.find_elements_by_link_text("教务系统")

根据元素id,类型和超链接名称获取元素,除了以上的方法,还有

  • find_element_by_id
  • find_element_by_name
  • find_element_by_xpath
  • find_element_by_link_text
  • find_element_by_partial_link_text
  • find_element_by_tag_name
  • find_element_by_class_name
  • find_element_by_css_selector

还有获取多个元素的方法:

  • 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

输入表单数据

1
2
name_field = driver.find_element_by_id('loginName')
name_field.send_keys('...')

获取元素后使用send_keys()方法输入数据

点击按钮或超链接

1
2
submit_button = driver.find_element_by_id('loginAction')
submit_button.click()

获取元素后使用click()方法点击按钮