0、前言:python中导包策略是import放前面,from import 放后面
1、selenium环境配置:
- 文档
- 这部分知识和爬虫之间的关系:第三方模块selenium适合动态页面爬取,当然静态页面也可以用selenium来爬。
- 简介:selenium自动化测试工具selenium是一个用于web程序测试的工具,selenium是直接运行在浏览器中的,能够像真正的用户一样操作浏览器。支持IE浏览器、谷歌浏览器、Edge、火狐浏览器、Safari浏览器、欧鹏浏览器等。selenium主要用来解决爬虫中的JavaScript渲染问题。
- 使用谷歌浏览器:因为谷歌为selenium适配了一个CDP(谷歌开发者工具协议)的协议,selenium结合CDP能够发挥出巨大的威力。
- 环境配置步骤:
1.要求有个谷歌浏览器:https://www.google.cn/chrome/
2.查看已安装的谷歌浏览器的版本号:在谷歌浏览器的地址栏输入chrome://settings/help
进入设置的关于界面,就能够看到版本号。
3.下载驱动文件:https://registry.npmmirror.com/binary.html?path=chromedriver/
根据已安装的浏览器的版本号寻找相匹配的文件夹,如果没有,找最相近的但是低于已安装浏览器版本号的文件夹。
4.下载的驱动压缩包解压:
解压完:windows系统能看到一个chromedriver.exe的文件
mac能看到一个chromedriver的文件
5.安装selenium模块
windows:pip install selenium
mac、linux:pip3 install selenium
6、代码验证:我的谷歌环境目前只能采用旧方法
from selenium.webdriver import Chrome
driver = Chrome(executable_path='./chromedriver.exe')
driver.get(url='https://www.baidu.com/')
driver.close()
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
browser = webdriver.Chrome(service=Service(executable_path='../Day05/chromedriver'))
driver.get(url='https://www.baidu.com/')
driver.close()
2、以获取xx联盟数据为例简介selenium模块:
- 前言:因为requests主要是爬取静态页面,而动态页面的数据会在网页当中渲染,可以在渲染结束后,显示在网页源码的伪代码当中。而通过selenium模块就可以模拟用户访问浏览器,从而获取网页源码的伪代码,从而获取一些渲染之后的动态数据。
- 代码:
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
Options = webdriver.ChromeOptions()
Options.add_experimental_option("detach", True)
browser = webdriver.Chrome(executable_path='../day_5/chromedriver.exe', options=Options)
URL = 'https://101.qq.com/#/hero'
browser.get(url=URL)
time.