Selenium基础入门及实践

2021-05-11  本文已影响0人  逍遥_yjz

1. 环境

操作系统:Windows10

Python版本:3.6

2. 需求分析

这里就要用到一个爬虫利器Selenium,它是一个自动化测试工具,利用它我们可以驱动浏览器执行特定的动作,如点击、下拉等等操作,所见即所得。另外对于一些 JavaScript 渲染的页面来说,此种抓取方式非常有效。

3. Selenium的安装

Selenium 的安装很简单,可采用如下方式。

pip install selenium

Selenium安装好之后,并不能直接使用,它需要与浏览器进行对接。这里拿Chrome浏览器为例。若想使用Selenium成功调用Chrome浏览器完成相应的操作,需要通过ChromeDriver来驱动。

4. ChromeDriver的安装

这里是ChromeDriver的官方下载地址。

链接:
https://chromedriver.storage.googleapis.com/index.html
我们在下载之前先来确认下我们使用的Chrome浏览器版本。


通过ChromeDriver的下载链接,找到与之对应的Chrome浏览器版本,根据你电脑系统的平台类型进行下载。


下载完成之后,解压,将其放置在Python安装路径下Scripts文件夹中即可

上述操作结束后,我们执行如下命令,测试一下
from selenium import webdriver
# 打开Chrome浏览器
browser = webdriver.Chrome()

代码执行后,若成功打开了浏览器,则证明你的ChromeDriver安装的没问题,可以正常愉快地使用Selenium了。

接下来,我们先来使用程序来爬取数据
爬取数据

from selenium import webdriver, common


url = 'https://www.mi.com/index.html'
# option = webdriver.ChromeOptions()
#
# option.add_argument('headless')
browser = webdriver.Chrome()
browser.get(url)
print(browser.page_source)

设置页面加载超时

设置 browser.get(url) 的超时需要调用 browser.set_page_load_timeout()。例如,下面的示例将打开 google.com 页面的超时设为 3 秒。

browser.set_page_load_timeout(3)

注意:WebDriver.implicitly_wait() 只能设置查找元素和执行命令的超时,对页面加载操作的超时无效。
注意:selenium 默认的页面加载超时为 300 秒。selenium 中所有超时方法的参数单位都为秒。内部为将参数乘1000 转成毫秒。
WebDriver.implicitly_wait() 设置的超时并不适用于用户操作导致的页面重新加载或页面脚本对 DOM 整体结构的改变,遇到这两种情况考虑适用其他等待条件。
https://zhuanlan.zhihu.com/p/446257218

参考资料:
用Python完成毫秒级抢单,助你秒杀淘宝大单
Python+Selenium基础入门及实践

上一篇下一篇

猜你喜欢

热点阅读