摘要:还记得前几节,我们在构造请求时会给请求加上浏览器目的就是为了让我们的请求模拟浏览器的行为,防止被网站的反爬虫策略限制。创建一个实例打开网址运行后会发现程序自动打开了浏览器,并且定向到了百度首页。
前面几节,我们学习了用 requests 构造页面请求来爬取静态网页中的信息以及通过 requests 构造 Ajax 请求直接获取返回的 JSON 信息。
还记得前几节,我们在构造请求时会给请求加上浏览器 headers,目的就是为了让我们的请求模拟浏览器的行为,防止被网站的反爬虫策略限制。今天要介绍的 Selenium 是一款强大的工具,它可以控制我们的浏览器,这样一来程序的行为就和人类完全一样了。
通过使用 Selenium 可以解决几个问题:
页面内容是由 JavaScript 动态生成,通过 requests 请求页面无法获取内容。
爬虫程序被反爬虫策略限制
让程序的行为和人一样
安装
pip install selenium
安装浏览器驱动
驱动下载地址
下载后把驱动文件加入环境变量。或者直接把驱动文件和 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.ucloud.cn/yun/42529.html
摘要:楚江数据是专业的互联网数据技术服务,现整理出零基础如何学爬虫技术以供学习,。本文来源知乎作者路人甲链接楚江数据提供网站数据采集和爬虫软件定制开发服务,服务范围涵盖社交网络电子商务分类信息学术研究等。 楚江数据是专业的互联网数据技术服务,现整理出零基础如何学爬虫技术以供学习,http://www.chujiangdata.com。 第一:Python爬虫学习系列教程(来源于某博主:htt...
摘要:耗时代码运行到这句之后触发隐式等待,在轮询检查后仍然没有定位到元素,抛出异常。耗时值得一提的是,对于定位不到元素的时候,从耗时方面隐式等待和强制等待没什么区别。 ...
文章目录 selenium 简介selenium安装安装浏览器驱动确定浏览器版本下载驱动 定位页面元素打开指定页面id 定位name 定位class 定位tag 定位xpath 定位css 定位link 定位partial_link 定位 浏览器控制修改浏览器窗口大小浏览器前进&后退浏览器刷新浏览器窗口切换常见操作 鼠标控制单击左键单击右键双击拖动鼠标悬停 键盘控制 seleni...
摘要:文档写得很清楚,也有中文版,你只要看了最初的一小部分,就可以在代码中派上用场了。 关于爬虫的案例和方法,我们已讲过许多。不过在以往的文章中,大多是关注在 如何把网页上的内容抓取下来 。今天我们来分享下,当你已经把内容爬下来之后, 如何提取出其中你需要的具体信息 。 网页被抓取下来,通常就是 str 字符串类型的对象 ,要从里面寻找信息,最直接的想法就是直接通过字符串的 find 方法 ...
摘要:以下这些项目,你拿来学习学习练练手。当你每个步骤都能做到很优秀的时候,你应该考虑如何组合这四个步骤,使你的爬虫达到效率最高,也就是所谓的爬虫策略问题,爬虫策略学习不是一朝一夕的事情,建议多看看一些比较优秀的爬虫的设计方案,比如说。 (一)如何学习Python 学习Python大致可以分为以下几个阶段: 1.刚上手的时候肯定是先过一遍Python最基本的知识,比如说:变量、数据结构、语法...
阅读 3885·2021-11-24 09:38
阅读 3008·2021-11-17 09:33
阅读 3838·2021-11-10 11:48
阅读 1216·2021-10-14 09:48
阅读 3093·2019-08-30 13:14
阅读 2528·2019-08-29 18:37
阅读 3370·2019-08-29 12:38
阅读 1394·2019-08-29 12:30