chrome网页视频抓取(实践应用类(非知识讲解)本文介绍selenium库和chrome浏览器实现自动抓取网页元素)
优采云 发布时间: 2021-12-23 21:01chrome网页视频抓取(实践应用类(非知识讲解)本文介绍selenium库和chrome浏览器实现自动抓取网页元素)
概括
最后更新时间:2020.08.20(实验部分待更新)
本文类型:实际应用(非知识讲解)
本文介绍了selenium库和chrome浏览器自动抓取网页元素,定位并填写表单数据,可以实现自动填写,节省大量人力。为了方便使用selenium库,方便处理运行中的错误,本文将对selenium库进行一定程度的重新封装,以便读者在了解selenium库后能够快速上手编程。
一、本文知识点:1.安装selenium库,2.selenium库查找元素的方式,3.重新打包selenium库
二、本文结构:1.先简单介绍一下知识点,2.把复制后可以直接运行的调试代码以完整段落的形式贴出来,让读者可以调试发布的每一段代码。
三、 本文方法实现:以百度主页为控制网页,以谷歌浏览器为实验平台,使用python+selenium进行网页操作。ps:其他对应的爬网实验会更新。
四、本文实验:1.
后台自动登录*敏*感*词*
, 2.
后台QQ邮箱阅读最新邮件
, 等待其他实验更新(均提供详细代码和注释,文末有对应链接)
温馨提示:以下为本文文章内容,以下案例可供参考
一、安装selenium库及相关文件
Selenium 库是python 爬取网站 的自动化工具。支持的浏览器包括Chrome、Firefox、Safari等主流界面浏览器。它还支持Windows、Linux、IOS、Android等多种操作系统。
1.安装硒库
(1)点击win10的开始菜单,直接输入cmd右键以管理员身份运行
(2)如果安装python时勾选了添加路径的选项,可以直接输入命令
pip 安装硒
(如果没有添加,建议卸载python,重新安装,查看添加路径。这个建议慎选,因为需要重新安装之前下载的库)
(3)网络连接下等待完成。如果提示超时,可以尝试以下命令切换下载源并重新安装:
pip 安装硒 -i
2.下载谷歌浏览器相关文件
本文使用的浏览器是谷歌浏览器,所以只介绍谷歌浏览器的爬取方法。其他浏览器的方法类似。
(1)
点击下载谷歌浏览器
(2)安装谷歌浏览器后,查看谷歌浏览器的版本号,点击谷歌浏览器右上角的三个点,选择——
帮助
——
关于谷歌浏览器
——
查看版本号
.
如图,本文版本号为
84.0.4147.125
(3)
点击下载谷歌浏览器驱动
打开驱动下载页面,找到版本号对应的驱动版本,
84.0.4147.125
, 所以寻找
84.0
一开始点击打开驱动下载对应的系统驱动。然后将其解压到您要编写项目的文件夹中。
不要放在python目录或者浏览器安装目录下。如果这样做,移植到另一台计算机时会出现各种BUG。根本原因是你的电脑已经安装了相应的库文件和驱动,但是端口是 电脑可能没有安装。
二、selenium 快速入门
1.元素定位的八种方式
(1)
ID
(2)
名称
(3)
路径
(4)
链接文字
(5)
部分链接文本
(6)
标签名称
(7)
班级名称
(8)
css 选择器
2. id 方法
(1) 在 selenium 中通过
ID
定位一个元素:
find_element_by_id
以百度的页面为例,其百度输入框的页面源码如下:
......
在,
是输入框的网页代码,
百度网页代码
通过id查找元素的代码和注释如下:
导入操作系统
导入系统
导入时间
从硒导入网络驱动程序
##此方法获取的工作文件夹路径在py文件下或封装exe后有效。##
当前工作主路径 = os.path.dirname(os.path.realpath(sys.argv[0]))
##配置谷歌浏览器驱动器路径##
Google Drive Drive = 当前工作主路径 + "/" + "chromedriver.exe"
##初始化硒控制##
浏览器驱动程序 = webdriver.Chrome(executable_path=Google Drive 驱动程序)
##打开链接,改成其他网址,请注意开头##
浏览器驱动程序.get("")
##按id搜索清除搜索框内容##
浏览器 driver.find_element_by_id("kw").clear()
##搜索并按id输入搜索框内容##
浏览器驱动.find_element_by_id("kw").send_keys("python+selenium库实现抓取网页数据内容并自动填表的解决方案,并附上已经交付给甲方的代码实际稳定运行")
##按id搜索,点击百度搜索##
浏览器 driver.find_element_by_id("su").click()
##保持5s时间
time.sleep(5)
###关闭并退出浏览器
浏览器 driver.quit()
3. 命名方法
还是以百度输入框为例,通过selenium
名称
定位一个元素:
find_element_by_name
代码和注释如下:
导入操作系统
导入系统
导入时间
从硒导入网络驱动程序
##此方法获取的工作文件夹路径在py文件下或封装exe后有效。##
当前工作主路径 = os.path.dirname(os.path.realpath(sys.argv[0]))
##配置谷歌浏览器驱动器路径##
Google Drive Drive = 当前工作主路径 + "/" + "chromedriver.exe"
##初始化硒控制##
浏览器驱动程序 = webdriver.Chrome(executable_path=Google Drive 驱动程序)
##打开链接,改成其他网址,请注意开头##
浏览器驱动程序.get("")
##按名称搜索清除搜索框内容##
浏览器 driver.find_element_by_name("wd").clear()
##按名称搜索并输入搜索框的内容##
浏览器驱动.find_element_by_name("wd").send_keys("python+selenium库实现爬虫抓取网页数据内容并自动填表的解决方案,并附上已经交付给甲方的代码实际稳定运行")
##按id搜索,点击百度搜索##
浏览器 driver.find_element_by_id("su").click()
##保持5s时间
time.sleep(5)
###关闭并退出浏览器
浏览器 driver.quit()
4. xpath 方式
还是以百度输入框为例,通过selenium
路径
定位一个元素:
find_element_by_xpath
. 但是这种方法不适合在网页中的位置会发生变化的表格元素,因为xpath方法指向的是固定的行列,无法检测行列内容的变化。
首先在谷歌浏览器中打开百度,在空白处
鼠标右键
,选择
检查 (N)
有了这个选择,就可以进入网页的开发者模式了,如图。然后在百度输入框
鼠标右键
, 再次点击
检查 (N)
选择,可以发现右边代码框自动选中的部分已经变成了百度输入框的代码。最后,在右侧自动选中的代码片段
右键点击
-选择
复制
-选择
复制 Xpath
, 百度输入框
路径
为了
//*[@id="kw"]
, 百度
路径
为了
//*[@id="su"]
接下来,使用此值执行百度搜索。代码和注释如下。
导入操作系统
导入系统
导入时间
从硒导入网络驱动程序
##此方法获取的工作文件夹路径在py文件下或封装exe后有效。##
当前工作主路径 = os.path.dirname(os.path.realpath(sys.argv[0]))
##配置谷歌浏览器驱动器路径##
Google Drive Drive = 当前工作主路径 + "/" + "chromedriver.exe"
##初始化硒控制##
浏览器驱动程序 = webdriver.Chrome(executable_path=Google Drive 驱动程序)
##打开链接,改成其他网址,请注意开头##
浏览器驱动程序.get("")
##通过xpath搜索清除搜索框内容,注意单引号和双引号的混合使用##
浏览器 driver.find_element_by_xpath('//*[@id="kw"]').clear()
##通过xpath搜索并输入搜索框的内容,注意单引号和双引号的混合使用##
Browser driver.find_element_by_xpath('//*[@id="kw"]').send_keys("python+selenium库实现了爬虫抓取网页数据内容并自动填表的解决方案,并附有实际稳定性已交付给甲方运行代码")
##通过xpath搜索,点击百度搜索,注意单引号和双引号的混合使用##
浏览器 driver.find_element_by_xpath('//*[@id="su"]').click()
##保持5s时间
time.sleep(5)
###关闭并退出浏览器
浏览器 driver.quit()
5. 链接文本和部分链接文本方法