简介

selenium 是一个用于Web应用程序测试的工具测试直接运行在浏览器中,就像真正的用户在操作一样,一般用于测试在浏览器和系统之间的兼容性。是所有可使用工具中的适用范围最广的技术之一。


Supported浏览器

Edge,Firefox,Safari,Google Chrome等等


形象化的执行过程

Selenium模仿真正用户的操作,如打开浏览器,跳转指定url,查看指定数据等


简要实际执行过程
  1. 驱动浏览器
  2. 根据代码中设定的url,进行跳转并加载内容
  3. 当然可以插入点击,输入查询内容等操作
  4. 爬取并分析数据

selenium安装教程

按照我装入的Edge驱动为例:

  1. 首先查看自己的Edge的版本号(点进浏览器的设置中查看即可)
  2. 点击此链接,进入官网下载 注意下载版本号一致的WebDriver,否则出现异常
  3. python中selenium怎么爬取js加载网页 selenium怎么爬取数据_加载


  4. 下载完成之后,只描述下载的是exe文件操作
    将下载的exe文件复制进入python 中的Scripts文件夹下即可安装完毕

样例使用

import csv

from selenium import webdriver

base_url = "https://ncov.dxy.cn/ncovh5/view/pneumonia"    # 访问的地址
driver = webdriver.Edge()    #  驱动浏览器
driver.implicitly_wait(3)  # 隐式等待时间
# 隐形等待是设置了一个最长等待时间,如果在规定时间内网页加载完成,
# 则执行下一步,否则一直等到时间截止,然后执行下一步
driver.get(base_url)  # 加载指定地址页面

测试结果

python中selenium怎么爬取js加载网页 selenium怎么爬取数据_python_02


爬取的内容提取

使用scrapy的频率多了,当然首选xpath方法。
举一个方法使用,使用循环提取列表内容
类似如下使用即可:

for each in driver.find_elements_by_xpath("/html/body/div[3]/"):
	country = each.find_element_by_xpath("div/div[1]").text # 此处是提取文本信息
	# 注意此处使用方法和scrapy的稍微不同之处,text不能放在xpath里面

使用上述方法进行代码填充爬取的结果示例

此爬取的网址不是上述代码所述网址

python中selenium怎么爬取js加载网页 selenium怎么爬取数据_等待时间_03


爬取后提取到csv文件的内容

python中selenium怎么爬取js加载网页 selenium怎么爬取数据_selenium_04