Python爬虫:学习selenium的正确姿势!!!

本文详细介绍了如何使用selenium进行Python爬虫,包括selenium的安装、ChromeDriver配置、基本使用方法、查找元素、等待页面加载、异常处理等关键知识点,旨在帮助读者解决动态渲染页面的抓取问题。
摘要由CSDN通过智能技术生成

前言

在上篇文章中,我为大家介绍了Ajax的分析和抓取方式,这其实也是javascript动态渲染页面的一种方式,通过直接分析Ajax,仍然可以通过requests来实现数据的获取。

不过javascript动态渲染页面不止Ajax这种。有些网站的分页部分可能是通过javascript生成的,并非原生的HTML代码,这其中并不包含Ajax请求。再有就是淘宝页面,它即使是Ajax获取的数据,但是其Ajax接口会含有很多的加密参数,我们获取下来之后很难通过Ajax请求来得到规律。

为了解决这个问题,Python提供了很多模拟浏览器运行的库,如selenium、splash、PyV8、Ghost等。本次内容,我将为大家分享selenium的用法。有了它们就不需要为动态渲染的页面而发愁了。

是不是内心会有一点点的小激动呢?

selenium的安装

是不是会有很多小伙伴会认为这个安装有必要讲吗?不就是一个pip就可以搞定嘛,当然没有那么简单了。

selenium是一个自动化测试工具,利用它我们可以驱动浏览器执行特定的动作,如点击、下拉等操作。对于一些javascript渲染的页面来说,这招还是很有效的。

pip 安装

安装方式:我推荐pip安装

pip install selenium

验证安装

进入Python命令交互模式,导入selenium包,如果没有报错,那么就说明安装成功。

C:\Users\admin>python
Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import selenium
>>>

但是这样还不够,但是这样还不够,因为我们需要用到浏览器(如Chrome、Firefox)来配合selenium工作。有了浏览器我们才能配合selenium进行页面抓取。

ChromeDriver的安装

当然,首先得下载好Chrome浏览器,可以自行百度下载并安装。

随后安装ChromeDriver。因为只有安装了ChromeDriver之后,才能驱动Chrome浏览器完成相应的操作。

  • 1、准备工作

在这之前请务必确定已经安装成功Chrome浏览器。

  • 2、查看版本

点击Chrome设置——>点击关于Chrome,即可查看Chrome的版本。如下图所示:

这里我的浏览器版本号是88.0。

请记住Chrome的版本号,因为等一下选择ChromeDriver版本的时候需要用到。

下载ChromeDriver

下载网址如下:

http://npm.taobao.org/mirrors/chromedriver

选择与你的浏览器相符合的版本,如下图所示:

环境变量配置

将刚刚下载好的驱动解压出来,并将其放入Python的Scripts目录下即可。如下图所示:

验证安装

配置完成之后可以在命令行输入chromedriver命令,如果输入之后出现如下图所示的界面,则说明环境变量配置好了。

selenium的基本使用介绍

简单示例

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.clear()
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
driver.close()<
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值