课程源码+资料
我用夸克网盘分享了「网页自动化1」
链接:https://pan.quark.cn/s/b64120f46e44
准备工作
为什么要模拟浏览器?
对爬虫是稍微有了解的同学可能会有疑问,明明可以使用 requests 库直接获取到网页源代码了,为什么还是要模拟浏览器进行网页自动化操作呢?获取源码的方式虽然简单又直接,但大家别忘了你有爬虫,别人有反爬虫。
另外网页里一些关键数据的解析和提交,往往可能通过脚本(JavaScript)来进行解析和加密,我们要理解这些混淆后的 JavaScript 代码是很费劲的,就不能很快地进行数据的抓取或提交。而且很多网站往往是有验证码的,现在验证方式五花八门,要想模拟过验证那确实是有难度的。所以用浏览器的打开网页,真实地模拟人类操作,才能克服读取网页内容的障碍。
Selenium介绍
Selenium可以说是网络爬虫中的王者了,它可以控制浏览器,当使用 Selenium 当爬虫工具时,网络服务器会认为来读取数据的是正常的浏览器,所以不会有阻挡无法读取网页 HTML 原始文件的问题。
当然,Selenium作为爬虫王者,不仅是可以打开网页,读取信息,还可以用它点击链接,填写登录信息,甚至可以做自动上下架商品、抢票抢茅台系统。
安装工作
要在 Windows 中使用 Selenium 来控制浏览器完成自动操作,必须要先安装好下面的软件:
1. Selenium库 本教程以 Pycharm 开发环境作为示例。
2. 浏览器 本教程以Win10系统下使用 Chrome 浏览器作为示例。
3. 驱动程序 这里指的是浏览器对应的驱动程序,要使用配合 Chrome 的 chromedriver 。
1. 安装Selenium
这个比较简单,在 Pycharm 底部的功能菜单中选择 终端(Terminal),然后在控制台中输入
pip install selenium
按回车后等下载安装完成,可以使用以下的方式导入对应模块
from selenium import webdriver
2.安装浏览器
本教程使用 Chrome 作为示例,直接点击这个链接去官方下载: https://www.google.cn/chrom
e/ (经测试这个网址国内是可以打开的),下载完成后安装好,就是最新版的。(旧版本我也进行了整理并已经发布http://t.csdnimg.cn/hx8DK)
3. 安装驱动程序
这一步就比较关键了,首先打开 Chrome 浏览器,在地址栏里输入 chrome://version/ ,看看浏览器的版本号是多少,比如我的版本号是 "98.0.4758.102 (正式版本) (64 位) (cohort: Stable)"
,记住这串数字,等下要去下载对应版本的驱动程序。在浏览器里再打开这个网址 从
http://chromedriver.storage.googleapis.com/index.html
找到刚才对应的版本号:
from seleni
在浏览器里再打开这个网址 从http://chromedriver.storage.googleapis.com/index.html ,找
到刚才对应的版本号:
点击进去选择 windows 版本的驱动下载:
基本用法
这节我们就从初始化浏览器对象、访问页面、设置浏览器大小、刷新页面和前进后退、定位元素输入或点击等基础操作开始学习。
初始化浏览器对象
准备工作都已就绪,接下来我们尝试打开第一个网站,看看效果是什么样的。
新建一个 Python 代码文件,在文件中输入以下代码:
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
s = Service(r'C:\Users\77653\AppData\Local\Microsoft\Window