【爬虫】5.2 Selenium编写爬虫程序

这篇具有很好参考价值的文章主要介绍了【爬虫】5.2 Selenium编写爬虫程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. Selenium  框架介绍 

  • Selenium自动化测试框架是实现自动化测试的一个软件结构功能组件集合
  • Selenium自动化测试框架是一个半成品,能够帮助用户实现自动化测试。
  • Selenium是模仿浏览器行为的,当你运行测试类(爬虫)的时候,你就会发现selenium会打开一个浏览器,然后执行你的操作。

Selenium 的两种版本

  • Selenium 1(Selenium RC,Remote Control):传统 Selenium 框架,支持多种编程语言脚本生成。但需要启动一个代理 Server 来处理用户与测试 Server 之间的通讯。
  • Selenium 2(Selenium Webdriver):全新自动化接口,突破了 Selenium 1 的一些限制,剔除了中间 Server,适合熟悉 Selenium API 的 case 测试人员使用。

【爬虫】5.2 Selenium编写爬虫程序
Selenium RC 工作原理图

        Selenium 引入了 Remote Control Server 这样一个代理 Server,JavaScript 脚本注入和与 Server 通讯都通过这个代理 Server 来进行。流程说明:

  1. 执行测试脚本,脚本向Selenium Server发起请求,要求和Selenium Server建立链接
  2. Selenium Server的Launcher启动浏览器,向浏览器中插入Selenium Core的JavaScript代码库,并把浏览器的代理设置为Selenium Server的Http Proxy,确保后续Core的脚本域被访问的网站的脚本同源。
  3. 测试脚本向selenium Server发送Http请求,Selenium Server对请求进行解析,然后通过Http Proxy发送JS命令通知Selenium Core发送JS命令通知selenium Core执行操作浏览器的请求。
  4. Selenium Core收到指令后,执行测试脚本里指定的网页操作命令。
  5. 浏览器收到新的请求信息,于是发送Http请求给Selenium给Selenium Core里的Http Proxy,请求新的Web页面。(因为第二步中,selenium Server在启动浏览器的时候,已经把浏览器的代理地址设定为Selenium Server的Http Proxy)
  6. Selenium Server接收到请求后,自行重组http请求,向应用服务器发送请求并获取返回的web页面。
  7. Selenium Server的Http Proxy把接收的Web页面返回给浏览器

简述:

  1. 客户端建立与 selenium-RC server 的连接。
  2. Selenium RC Server 启动一个浏览器(或是已经使用中),并注入 JS 代码
  3. 将 Selenese 代码传到客户端的 Selenium-Core 中。
  4. Selenium-Core 翻译并解析执行用户录制的操作。
  5. 让代理 Server 进行通讯
  6. Remote Control Server 负责跟远程 Web 应用服务器进行通讯。
  7. 操作完成,显示结果,并执行下一指令。

以上就是 Selenium Remote Control 的执行原理。


【爬虫】5.2 Selenium编写爬虫程序
Selenium- WebDriver工作原理

三个模块:

  1.  自动化测试代码:自动化测试代码发送请求给浏览器的驱动(比如火狐驱动、谷歌驱动)
  2. 浏览器驱动:它来解析这些自动化测试的代码,解析后把它们发送给浏览器
  3. 浏览器:执行浏览器驱动发来的指令,并最终完成工程师想要的操作。

Selenium脚本执行时后端六条实现的流程

  1. 对于每一条Selenium脚本,一个http 请求会被创建并且发送给浏览器的驱动。
  2. 浏览器驱动中包含了一个HTTP Server,用来接收这些 http 请求
  3. HTTP Server接收到请求后根据请求来具体操控对应的浏览器
  4. 浏览器执行具体的测试步骤
  5. 浏览器将步骤执行结果返回给HTTP Server
  6. HTTP Server又将结果返回给Selenium的脚本,如果是错误的http代码我们就会在控制台看到对应的报错信息。

2. Selenium  框架使用

2.1 Selenium  安装与环境配置

  • 安装selenium

pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/

  • 安装chrome驱动程序要 selenium 与浏览器配合工作就必须安装浏览器对应的驱动程序。

chrome版本查看: chrome://version/

下载地址:https://npm.taobao.org/mirrors/chromedriver/

ChromeDriver 官方网站 https://sites.google.com/chromium.org/driver/downloads

下载chromedrive.exe的驱动程序,然后把它复制到python38\Scripts\目录下。


cmd命令打开命令行界面,输入“chromedriver”启动该驱动程序,查看是否配置成功。

【爬虫】5.2 Selenium编写爬虫程序

 2.2 常用指令

(1) 程序先从selenium引入webdriver,引入chrome程序的选择项目Options:

from selenium import webdriver

from selenium.webdriver.chrome.options import Options

(2) 设置启动chrome时不可见:

chrome_options.add_argument('--headless')

chrome_options.add_argument('--disable-gpu')

(3) 创建chome浏览器:

driver= webdriver.Chrome(chrome_options=chrome_options)

这样创建的chrome浏览器是不可见的,仅仅使用:

driver= webdriver.Chrome()

创建chrome浏览器,那么在程序执行时会弹出一个chrome浏览器。

(4) 使用driver.get(url)方法访问网页:

driver.get("http://127.0.0.1:5000")

(5) 通过driver.page_source 获取网页HTML代码(渲染后的数据页面): html=driver.page_source

print(html)

(6) driver.get_cookies()  获得页面的cookies

(7) 使 driver.current_url  查看请求的URL

(8) 用driver.close()关闭页面。driver.quit()关闭浏览器:

driver.close()

driver.quit()

(9)操作点击事件:

click()

(10)给输入框赋值:

send_keys()

编写Selenium爬虫程序

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from bs4 import BeautifulSoup

chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
driver = webdriver.Chrome()
driver.get("http://127.0.0.1:5000")
html = driver.page_source
soup = BeautifulSoup(html, "lxml")
hMsg = soup.find("span", attrs={"id": "hMsg"}).text
print(hMsg)
jMsg = soup.find("span", attrs={"id": "jMsg"}).text
print(jMsg)
sMsg = soup.find("span", attrs={"id": "sMsg"}).text
print(sMsg)

运行结果:

Html Message

JavaScript Message

Server Message

        采用Selenium的结构主要是模拟浏览器去访问网页,并充分执行网页中的 JavaScript程序,使得网页的数据充分下载,这样再用爬虫程序去爬取数据就能正确的爬取。


下一篇文章:5.3 Selenium 查找HTML元素文章来源地址https://www.toymoban.com/news/detail-511412.html

到了这里,关于【爬虫】5.2 Selenium编写爬虫程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Scala语言使用Selenium库编写网络爬虫

    目录 一、引言 二、环境准备 三、爬虫程序设计 1、导入必要的库和包 2、启动浏览器驱动程序 3、抓取网页内容 4. 提取特定信息 5. 数据存储和处理 四、优化和扩展 五、结语 网络爬虫是一种自动抓取互联网信息的程序。它们按照一定的规则和算法,遍历网页并提取所需的信

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

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

    2024年01月18日
    浏览(63)
  • 爬虫框架有Scrapy、BeautifulSoup、Selenium

    爬虫框架有Scrapy、BeautifulSoup、Selenium BeautifulSoup比Scrapy相对容易学习。 Scrapy的扩展,支持和社区比BeautifulSoup更大。 Scrapy应被视为蜘蛛,而BeautifulSoup则是Parser。 1.爬虫基础知识 在开始Python爬虫之前,需要先掌握一些基础知识。首先了解一下HTTP协议,掌握常见的请求方法和状

    2024年02月07日
    浏览(44)
  • selenium爬虫框架爬取某壁纸网站

    基础知识 环境配置 开始爬虫 简单分析目标网站 写函数 获取浏览器对象: 下载每一张图片: 获取每一页的源代码: 运行print_result_every_page python基础语法 面向对象基础 html基础 xpath基础 selenium框架的基本使用 request库 lxml库      3.安装浏览器xpath插件         打开谷歌浏览

    2024年02月05日
    浏览(43)
  • 使用Scrapy框架集成Selenium实现高效爬虫

    在网络爬虫的开发中,有时候我们需要处理一些JavaScript动态生成的内容或进行一些复杂的操作,这时候传统的基于请求和响应的爬虫框架就显得力不从心了。为了解决这个问题,我们可以使用Scrapy框架集成Selenium来实现高效的爬虫。 Scrapy是一个使用Python编写的开源网络爬虫框

    2024年02月09日
    浏览(46)
  • python爬虫框架selenium安装和使用教程

    – Selenium是一个常用的Python爬虫框架,可以模拟浏览器行为,实现一些自动化的操作。本教程将介绍Selenium的基础知识、使用方法,包括导入包、安装、示例、数据保存等方面。 在开始之前,我们需要先导入Selenium相关的包。这里我们用Python3作为演示,所以需要安装对应版本

    2024年02月02日
    浏览(41)
  • Scrapy爬虫框架集成Selenium来解析动态网页

    当前网站普遍采用了javascript 动态页面,特别是vue与react的普及,使用scrapy框架定位动态网页元素十分困难,而selenium是最流行的浏览器自动化工具,可以模拟浏览器来操作网页,解析元素,执行动作,可以处理动态网页,使用selenium处理1个大型网站,速度很慢,而且非常耗资

    2024年02月15日
    浏览(52)
  • 爬虫框架 Selenium Pyppeteer Playwright Luna对比

    爬虫框架 Selenium Pyppeteer Playwright Luna 对比 1. Selenium : 经典且落后、特征明显、特别容易被检测出来。 2. Pyppeteer :轻量级工具,功能稍强。 nice、但是一样容易被检测、但是稍微好一点点。 3. Playwright :强大且全面的自动化框架。 可以说还行、各方面比较不错,无论多语言环

    2024年02月05日
    浏览(61)
  • 爬虫:Scrapy热门爬虫框架介绍

    结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教程(0基础)》 再推荐一下最近热更的:《大厂测试高频面试题详解》 该专栏对近年

    2024年02月13日
    浏览(43)
  • 爬虫项目实战:利用基于selenium框架的爬虫模板爬取豆瓣电影Top250

    👋 Hi, I’m @货又星 👀 I’m interested in … 🌱 I’m currently learning … 💞 I’m looking to collaborate on … 📫 How to reach me … README 目录(持续更新中) 各种错误处理、爬虫实战及模板、百度智能云人脸识别、计算机视觉深度学习CNN图像识别与分类、PaddlePaddle自然语言处理知识图谱、

    2024年02月04日
    浏览(49)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包