Python 爬虫利器 Selenium 介绍

Python 爬虫利器 Selenium 介绍

https://mp.weixin.qq.com/s/YJGjZkUejEos_yJ1ukp5kw

 

前面几节,我们学习了用 requests 构造页面请求来爬取静态网页中的信息以及通过 requests 构造 Ajax 请求直接获取返回的 JSON 信息。

 

可以点击链接查看:

Python爬虫——Python岗位分析报告

Python 爬虫入门(二)——爬取妹子图

 

还记得前几节,我们在构造请求时会给请求加上浏览器 headers,目的就是为了让我们的请求模拟浏览器的行为,防止被网站的反爬虫策略限制。今天要介绍的 Selenium 是一款强大的工具,它可以控制我们的浏览器,这样一来程序的行为就和人类完全一样了。

 

通过使用 Selenium 可以解决几个问题:

 

  • 页面内容是由 JavaScript 动态生成,通过 requests 请求页面无法获取内容。

  • 爬虫程序被反爬虫策略限制

  • 让程序的行为和人一样

 

安装

 

pip install selenium

 

安装浏览器驱动

 

驱动下载地址https://sites.google.com/a/chromium.org/chromedriver/downloads

 

下载后把驱动文件加入环境变量。或者直接把驱动文件和 Python脚本放到同一文件夹下面

 

测试

 

安装完成后,可以编写以下脚本来测试是否安装成功。

 

from selenium import webdriver
driver = webdriver.Chrome()  # 创建一个 Chrome WebDriver 实例
driver.get('https://www.baidu.com/')  # 打开网址

 

运行后会发现程序自动打开了 Chrome 浏览器,并且定向到了百度首页。

 

与页面交互

 

WebDriver定义了很多方法,我们可以很方便的操作页面上的元素

比如获取元素,可以通过

 

driver.find_element_by_id("id")

 

或者

 

driver.find_element_by_name("name")

 

以及 xpath路径的方式来获取元素。可以通过send_keys 向输入框中写入文本。

 

from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
search_input = driver.find_element_by_id("kw") # 获取到百度搜索框
search_input.send_keys("刘亦菲")  # 自动输入 刘亦菲
submit = driver.find_element_by_id("su")  # 获取到百度一下按钮
submit.click()  # 点击搜索

 

运行以上脚本,程序会自动打开 Chrome 浏览器,并自动搜索 刘亦菲

 

其他操作

 

Selenium 可以进行各种各样的操作,使程序完全符合人类的操作习惯。下面看一下还有哪些功能。

 

 

 

 

具体可以看官方文档,这里贴一下地址

https://selenium-python-zh.readthedocs.io/en/latest/index.html

转载于:https://www.cnblogs.com/it-tsz/p/10635606.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值