【爬虫开发】爬虫从0到1全知识md笔记第4篇:Selenium课程概要,selenium的介绍【附代码文档】

这篇具有很好参考价值的文章主要介绍了【爬虫开发】爬虫从0到1全知识md笔记第4篇:Selenium课程概要,selenium的介绍【附代码文档】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【爬虫开发】爬虫从0到1全知识md笔记第4篇:Selenium课程概要,selenium的介绍【附代码文档】,前端,python笔记,爬虫,python,数据,后端

爬虫开发从0到1全知识教程完整教程(附代码资料)主要内容讲述:爬虫课程概要,爬虫基础爬虫概述,【爬虫开发】爬虫从0到1全知识md笔记第4篇:Selenium课程概要,selenium的介绍【附代码文档】,前端,python笔记,爬虫,python,数据,后端,http协议复习。requests模块,requests模块1. requests模块介绍,2. response响应对象,3. requests模块发送请求,4. requests模块发送post请求,5. 利用requests.session进行状态保持。数据提取概要,数据提取概述1. 响应内容的分类,2. 认识xml以及和html的区别,1. jsonpath模块的使用场景,2. jsonpath模块的使用方法,3. jsonpath练习,1. 了解 lxml模块和xpath语法。Selenium课程概要selenium的介绍,selenium提取数据。Selenium课程概要,反爬与反反爬selenium的其它使用方法。反爬与反反爬常见的反爬手段和解决思路。反爬与反反爬验证码处理,chrome浏览器使用方法介绍。反爬与反反爬,Mongodb数据库JS的解析,介绍,内容,mongodb文档,Mongodb的介绍和安装,小结。Mongodb数据库介绍,内容,mongodb文档,mongodb的简单使用,小结,Mongodb的的增删改查。Mongodb数据库介绍,内容,mongodb文档,mongodb的聚合操作,2 mongodb的常用管道和表达式,Mongodb的索引操作。Mongodb数据库,scrapy爬虫框架介绍,内容,mongodb文档,mongodb和python交互,小结,介绍。scrapy爬虫框架,scrapy爬虫框架介绍,内容,scrapy官方文档,scrapy的入门使用,小结,介绍。scrapy爬虫框架介绍,内容,scrapy官方文档,scrapy管道的使用,小结,scrapy的crawlspider爬虫。scrapy爬虫框架介绍,内容,scrapy官方文档,scrapy中间件的使用,小结,scrapy_redis概念作用和流程。scrapy爬虫框架介绍,内容,scrapy官方文档,scrapy_redis原理分析并实现断点续爬以及分布式爬虫,小结,scrapy_splash组件的使用。scrapy爬虫框架介绍,内容,scrapy官方文档,scrapy的日志信息与配置,小结,scrapyd部署scrapy项目。利用appium抓取app中的信息,利用appium抓取app中的信息介绍,内容,appium环境安装,介绍,内容,利用appium自动控制移动设备并提取数据。appium环境安装,Mongodb的介绍和安装,小结。scrapy的概念和流程 ,小结,selenium的介绍,常见的反爬手段和解决思路。数据提取概述1. 响应内容的分类,2. 认识xml以及和html的区别,爬虫概述,http协议复习。mongodb的简单使用,小结,scrapy的入门使用,小结。selenium提取数据,利用appium自动控制移动设备并提取数据。验证码处理。数据提取-jsonpath模块1. jsonpath模块的使用场景,2. jsonpath模块的使用方法,3. jsonpath练习,chrome浏览器使用方法介绍,Mongodb的的增删改查,小结。scrapy数据建模与请求,小结,selenium的其它使用方法。数据提取-lxml模块1. 了解 lxml模块和xpath语法,2. 谷歌浏览器xpath helper插件的安装和使用,3. xpath的节点关系,4. xpath语法-基础节点选择语法,5. xpath语法-节点修饰语法,6. xpath语法-其他常用节点选择语法。JS的解析,mongodb的聚合操作,2 mongodb的常用管道和表达式。scrapy模拟登陆,小结,Mongodb的索引操作,小结,scrapy管道的使用,小结。Mongodb的权限管理,小结,scrapy中间件的使用,小结。mongodb和python交互,小结,scrapy_redis概念作用和流程,小结,scrapy_redis原理分析并实现断点续爬以及分布式爬虫,小结。scrapy_splash组件的使用,小结,scrapy的日志信息与配置,小结。scrapyd部署scrapy项目,13.Gerapy,13.Gerapy。1.2.1-简单的代码实现,目标urlscrapy的crawlspider爬虫。

全套笔记资料代码移步: 前往gitee仓库查看

感兴趣的小伙伴可以自取哦,欢迎大家点赞转发~


全套教程部分目录:

【爬虫开发】爬虫从0到1全知识md笔记第4篇:Selenium课程概要,selenium的介绍【附代码文档】,前端,python笔记,爬虫,python,数据,后端

【爬虫开发】爬虫从0到1全知识md笔记第4篇:Selenium课程概要,selenium的介绍【附代码文档】,前端,python笔记,爬虫,python,数据,后端


部分文件图片:

【爬虫开发】爬虫从0到1全知识md笔记第4篇:Selenium课程概要,selenium的介绍【附代码文档】,前端,python笔记,爬虫,python,数据,后端

Selenium课程概要

本阶段课程主要学习selenium自动化测试框架在爬虫中的应用,selenium能够大幅降低爬虫的编写难度,但是也同样会大幅降低爬虫的爬取速度。在逼不得已的情况下我们可以使用selenium进行爬虫的编写。

selenium的介绍

知识点:
  • 了解 selenium的工作原理
  • 了解 selenium以及chromedriver的安装
  • 掌握 标签对象click点击以及send_keys输入

1. selenium运行效果展示

Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,Selenium 可以直接调用浏览器,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器),可以接收指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏等。我们可以使用selenium很容易完成之前编写的爬虫,接下来我们就来看一下selenium的运行效果

1.1 chrome浏览器的运行效果

在下载好chromedriver以及安装好selenium模块后,执行下列代码并观察运行的过程

from selenium import webdriver 



# 如果driver没有添加到了环境变量,则需要将driver的绝对路径赋值给executable_path参数




# driver = webdriver.Chrome(executable_path='/home/worker/Desktop/driver/chromedriver')





# 如果driver添加了环境变量则不需要设置executable_path


driver = webdriver.Chrome()



# 向一个url发起请求


driver.get("



# 把网页保存为图片,69版本以上的谷歌浏览器将无法使用截图功能




# driver.save_screenshot("itcast.png")



print(driver.title) # 打印页面的标题



# 退出模拟浏览器


driver.quit() # 一定要退出!不退出会有残留进程!
1.2 phantomjs无界面浏览器的运行效果

PhantomJS 是一个基于Webkit的“无界面”(headless)浏览器,它会把网站加载到内存并执行页面上的 JavaScript。下载地址:[

from selenium import webdriver 



# 指定driver的绝对路径


driver = webdriver.PhantomJS(executable_path='/home/worker/Desktop/driver/phantomjs') 


# driver = webdriver.Chrome(executable_path='/home/worker/Desktop/driver/chromedriver')





# 向一个url发起请求


driver.get("



# 把网页保存为图片


driver.save_screenshot("itcast.png")



# 退出模拟浏览器


driver.quit() # 一定要退出!不退出会有残留进程!
1.3 观察运行效果
  • python代码能够自动的调用谷歌浏览或phantomjs无界面浏览器,控制其自动访问网站
1.4 无头浏览器与有头浏览器的使用场景
  • 通常在开发过程中我们需要查看运行过程中的各种情况所以通常使用有头浏览器
  • 在项目完成进行部署的时候,通常平台采用的系统都是服务器版的操作系统,服务器版的操作系统必须使用无头浏览器才能正常运行

2. selenium的作用和工作原理

利用浏览器原生的API,封装成一套更加面向对象的Selenium WebDriver API,直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,配置证书之类的)

【爬虫开发】爬虫从0到1全知识md笔记第4篇:Selenium课程概要,selenium的介绍【附代码文档】,前端,python笔记,爬虫,python,数据,后端

  • webdriver本质是一个web-server,对外提供webapi,其中封装了浏览器的各种功能
  • 不同的浏览器使用各自不同的webdriver

知识点:了解 selenium的工作原理

3. selenium的安装以及简单使用

我们以谷歌浏览器的chromedriver为例

3.1 在python虚拟环境中安装selenium模块

pip/pip3 install selenium

3.2 下载版本符合的webdriver

以chrome谷歌浏览器为例

  1. 查看谷歌浏览器的版本

【爬虫开发】爬虫从0到1全知识md笔记第4篇:Selenium课程概要,selenium的介绍【附代码文档】,前端,python笔记,爬虫,python,数据,后端

【爬虫开发】爬虫从0到1全知识md笔记第4篇:Selenium课程概要,selenium的介绍【附代码文档】,前端,python笔记,爬虫,python,数据,后端

  1. 访问[

【爬虫开发】爬虫从0到1全知识md笔记第4篇:Selenium课程概要,selenium的介绍【附代码文档】,前端,python笔记,爬虫,python,数据,后端

  1. 点击notes.txt进入版本说明页面

【爬虫开发】爬虫从0到1全知识md笔记第4篇:Selenium课程概要,selenium的介绍【附代码文档】,前端,python笔记,爬虫,python,数据,后端

  1. 查看chrome和chromedriver匹配的版本

【爬虫开发】爬虫从0到1全知识md笔记第4篇:Selenium课程概要,selenium的介绍【附代码文档】,前端,python笔记,爬虫,python,数据,后端

  1. 根据操作系统下载正确版本的chromedriver

【爬虫开发】爬虫从0到1全知识md笔记第4篇:Selenium课程概要,selenium的介绍【附代码文档】,前端,python笔记,爬虫,python,数据,后端

  1. 解压压缩包后获取python代码可以调用的谷歌浏览器的webdriver可执行文件

  2. windows为chromedriver.exe

  3. linux和macos为chromedriver

  4. chromedriver环境的配置

  5. windows环境下需要将 chromedriver.exe 所在的目录设置为path环境变量中的路径

  6. linux/mac环境下,将 chromedriver 所在的目录设置到系统的PATH环境值中

知识点:了解 selenium以及chromedriver的安装

4. selenium的简单使用

接下来我们就通过代码来模拟百度搜索

import time
from selenium import webdriver



# 通过指定chromedriver的路径来实例化driver对象,chromedriver放在当前目录。




# driver = webdriver.Chrome(executable_path='./chromedriver')




# chromedriver已经添加环境变量


driver = webdriver.Chrome()



# 控制浏览器访问url地址


driver.get("



# 在百度搜索框中搜索'python'


driver.find_element_by_id('kw').send_keys('python')


# 点击'百度搜索'


driver.find_element_by_id('su').click()

time.sleep(6)


# 退出浏览器


driver.quit()
  • webdriver.Chrome(executable_path='./chromedriver')中executable参数指定的是下载好的chromedriver文件的路径
  • driver.find_element_by_id('kw').send_keys('python')定位id属性值是'kw'的标签,并向其中输入字符串'python'
  • driver.find_element_by_id('su').click()定位id属性值是su的标签,并点击

  • click函数作用是:触发标签的js的click事件


知识点:掌握 标签对象click点击以及send_keys输入

selenium提取数据

知识点:
  • 了解 driver对象的常用属性和方法
  • 掌握 driver对象定位标签元素获取标签对象的方法
  • 掌握 标签对象提取文本和属性值的方法

1. driver对象的常用属性和方法

在使用selenium过程中,实例化driver对象后,driver对象有一些常用的属性和方法

  1. driver.page_source 当前标签页浏览器渲染之后的网页源代码
  2. driver.current_url 当前标签页的url
  3. driver.close() 关闭当前标签页,如果只有一个标签页则关闭整个浏览器
  4. driver.quit() 关闭浏览器
  5. driver.forward() 页面前进
  6. driver.back() 页面后退
  7. driver.screen_shot(img_name) 页面截图

知识点:了解 driver对象的常用属性和方法

2. driver对象定位标签元素获取标签对象的方法

在selenium中可以通过多种方式来定位标签,返回标签元素对象

find_element_by_id                         (返回一个元素)
find_element(s)_by_class_name             (根据类名获取元素列表)
find_element(s)_by_name                 (根据标签的name属性值返回包含标签对象元素的列表)
find_element(s)_by_xpath                 (返回一个包含元素的列表)
find_element(s)_by_link_text             (根据连接文本获取元素列表)
find_element(s)_by_partial_link_text     (根据链接包含的文本获取元素列表)
find_element(s)_by_tag_name             (根据标签名获取元素列表)
find_element(s)_by_css_selector         (根据css选择器来获取元素列表)
  • 注意:

  • find_element和find_elements的区别:

    • 多了个s就返回列表,没有s就返回匹配到的第一个标签对象
    • find_element匹配不到就抛出异常,find_elements匹配不到就返回空列表
  • by_link_text和by_partial_link_tex的区别:全部文本和包含某个文本

  • 以上函数的使用方法

    • driver.find_element_by_id('id_str')

知识点:掌握 driver对象定位标签元素获取标签对象的方法

3. 标签对象提取文本内容和属性值

find_element仅仅能够获取元素,不能够直接获取其中的数据,如果需要获取数据需要使用以下方法

  • 对元素执行点击操作element.click()

  • 对定位到的标签对象进行点击操作

  • 向输入框输入数据element.send_keys(data)

  • 对定位到的标签对象输入数据

  • 获取文本element.text

  • 通过定位获取的标签对象的text属性,获取文本内容

  • 获取属性值element.get_attribute("属性名")

  • 通过定位获取的标签对象的get_attribute函数,传入属性名,来获取属性的值

文章来源地址https://www.toymoban.com/news/detail-851786.html

  • 代码实现,如下:
from selenium import webdriver

driver = webdriver.Chrome()

driver.get('

ret = driver.find_elements_by_tag_name('h2')
print(ret[0].text) # 

ret = driver.find_elements_by_link_text('程序员')
print(ret[0].get_attribute('href'))

driver.quit()

知识点:掌握 元素对象的操作方法

未完待续, 同学们请等待下一期

全套笔记资料代码移步: 前往gitee仓库查看

感兴趣的小伙伴可以自取哦,欢迎大家点赞转发~

到了这里,关于【爬虫开发】爬虫从0到1全知识md笔记第4篇:Selenium课程概要,selenium的介绍【附代码文档】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python爬虫学习笔记(七)————Selenium

    目录 1.什么是selenium? 2.为什么使用selenium? 3.selenium安装 4.selenium的使用步骤 5.selenium的元素定位 6.访问元素信息 7.交互 1.什么是selenium? (1)Selenium是一个用于Web应用程序测试的工具。 (2)Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。 (3)支持通过各种

    2024年02月16日
    浏览(35)
  • 网络爬虫开发(五)01-爬虫高级——Selenium简介 & 根据平台选择安装selenium-webdriver包 & Selenium的基本使用

    网络爬虫开发(五)01-爬虫高级——Selenium简介 根据平台选择安装selenium-webdriver包 Selenium的基本使用 学习目标: 使用Selenium库爬取前端渲染的网页 反反爬虫技术 官方原文介绍: Selenium automates browsers . That’s it! What you do with that power is entirely up to you. Primarily, it is for automating web

    2024年01月24日
    浏览(36)
  • 【学习笔记】爬虫(Ⅰ)—— Selenium和Pytest

            爬虫(Web Scraper)是指一类软件程序或脚本,其基本原理是模拟人类用户在网页上的浏览行为,通过发送 HTTP 请求来 获取 网页内容,并 解析 网页内容、 提取 所需的信息。         爬虫通常用于从网站上抓取数据,它们 批量化 地、 自动 地、浏览互联网并收

    2024年04月16日
    浏览(45)
  • Java学习笔记:爬虫-Selenium高级操作

    Selenium VS Jsoup Jsoup 优点:程序的可控性强,不依赖于外部环境,容错性比较强,并发处理更灵活,适合于服务器端开发; 缺点:对于复杂页面(ajax、表单数据校验、登录)处理比较麻烦,对于反爬的网站需要做报文头等的设置工作。 Selenium 优点:简单; 缺点:依赖于外部环

    2024年02月06日
    浏览(44)
  • Selenium进行无界面爬虫开发

    在网络爬虫开发中,利用Selenium进行无界面浏览器自动化是一种常见且强大的技术。无界面浏览器可以模拟真实用户的行为,解决动态加载页面和JavaScript渲染的问题,给爬虫带来了更大的便利。本文将为您介绍如何利用Selenium进行无界面浏览器自动化爬虫开发的步骤,并分享

    2024年02月04日
    浏览(30)
  • 网络爬虫(Python:Selenium、Scrapy框架;爬虫与反爬虫笔记)

    Selenium是一个模拟浏览器浏览网页的工具,主要用于测试网站的自动化测试工具。 Selenium需要安装浏览器驱动,才能调用浏览器进行自动爬取或自动化测试,常见的包括Chrome、Firefox、IE、PhantomJS等浏览器。 注意:驱动下载解压后,置于Python的安装目录下;然后将Python的安装目

    2024年01月18日
    浏览(59)
  • python爬虫selenium+scrapy常用功能笔记

    访问网址可以看到直观结果 https://bot.sannysoft.com/ 获取页面dom 页面元素获取 元素点击 frame跳转 获取cookie 给请求添加cookie 点击 上传文件 退出页面 多摘自之前文档 https://blog.csdn.net/weixin_43521165/article/details/111905800 创建项目 scrapy startproject 爬虫项目名字 # 例如 scrapy startproject f

    2023年04月20日
    浏览(54)
  • Java学习笔记:爬虫-操作动态网页的Selenium

    Why Selenium? 有些网页内容是在浏览器端动态生成的,直接Http获取网页源码是得不到那些元素的。 Selenium可以自动启动一个浏览器、打开网页,可以用程序操作页面元素,也可以获得浏览器当前页面动态加载的页面元素。 比如:百度图片的图片是动态加载的。 用法: 1、下载安

    2024年02月13日
    浏览(42)
  • 爬虫笔记--Selenium实现有验证码网站模拟登录

    代码如下: 一点说明: 安利个巨好用的识别验证码的库 ddddocr gitHub:https://github.com/sml2h3/ddddocr 可能会在版本上遇到问题,我的报错参考这篇文档解决:https://blog.csdn.net/zhuchengchengct/article/details/124854199 我用的版本作为参考:python是3.9.13,ddddocr是1.4.2 如有问题,欢迎大家批评

    2024年02月16日
    浏览(43)
  • 【Python爬虫开发基础⑩】selenium概述

    🚀 个人主页 :为梦而生~ 关注我一起学习吧! 💡 专栏 :python网络爬虫从基础到实战 欢迎订阅!后面的内容会越来越有意思~ 💡 往期推荐 : ⭐️前面比较重要的 基础内容 : 【Python爬虫开发基础⑥】计算机网络基础(Web和HTTP) 【Python爬虫开发基础⑦】urllib库的基本使用

    2024年02月12日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包