基于Selenium技术方案的爬虫入门实践

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

通过爬虫技术抓取网页,动态加载的数据或包含 JavaScript 的页面,需要使用一些特殊的技术和工具。以下是一些常用的技术方法:

  • 使用浏览器模拟器:使用像 Selenium、PhantomJS 或其他类似工具可以模拟一个完整的浏览器环境,这些工具都可以执行JavaScript并且返回渲染后的页面内容。使用这种方法可以模拟用户与网站的交互,从而得到完整的运行时状态。

  • 分析网络请求:使用网络抓包工具(例如 Fiddler、Wireshark)来监视网站上的网络请求。通过分析网络请求并确定用于检索数据的URL,可以获取请求数据并解析响应数据,从而获得所需的信息。

  • 解析 JavaScript 代码:有些网站将数据存储在 JavaScript 中并动态显示在页面上。使用 JavaScript 解析器(例如 jsdom、PyV8 等)可以执行 JavaScript 代码并解析响应结果,以获取所需的数据。

  • 接口直接请求:有些网站提供专用的API(应用程序接口),用于向开发人员公开数据。这些API允许开发人员通过发送HTTP请求来获取特定数据,并且网络请求和响应数据通常以JSON格式进行编码。

总之,抓取动态加载的数据或包含JavaScript的页面需要深入了解目标网站的技术细节以及使用现代的网络爬虫技术来获取所需的信息。

本文采用使用浏览器模拟器技术方案。

1. 使用Chrome开发者工具精确定位网页元素位置

F12键直接打开Chrome开发者模式,或者找到Chrome浏览器的“更多工具”中的“开发者工具”,如下图所示(这里以百度界面为例),使用百度网页查询搜索为例,获取界面元素,进行爬取。

1.1. 定位制定元素

定位原始xpath,在Elements中点击箭头(下图红圆圈圈定位置的箭头),移动鼠标箭头到百度输入框位置定位指定的元素(如下图所示,手工绘制箭头改变了颜色,并且弹出“Input#kw…”)。
基于Selenium技术方案的爬虫入门实践,数据分析,Python,selenium,爬虫,python,chrome

1.2. 在定位元素的指定位置

在元素区域选定位置,鼠标右键弹出菜单选择框,选择Copy显示对应的元素定位方法。 点击:Copy Xpath,复制元素路径://[@id=“kw”]。
基于Selenium技术方案的爬虫入门实践,数据分析,Python,selenium,爬虫,python,chrome
使用快捷查询功能,在Chrome浏览器中:Ctral+F调出查询功能。在下面的输入框,输入刚才的//
[@id=“kw”] 路径可以高亮在界面展示对应的元素。

2. Selenium工具爬取内容

Selenium是一种用于Web应用程序测试的自动化工具。它允许用户使用各种编程语言(如Java、Python、C#等)编写测试脚本来模拟实际用户在Web浏览器中的操作,例如点击链接、填写表单等等。Selenium也可以用于爬虫、数据挖掘和Web自动化等领域,因为它可以模拟人类的操作来获取Web页面的内容和数据。Selenium的优势在于它可以与各种主要的Web浏览器和操作系统一起使用,并且可以从多个平台上运行测试脚本。此外,Selenium还具有灵活性和可扩展性,因为它可以与其他测试框架和工具集成使用,从而提高测试效率和可靠性。

Selenium是一款常用的自动化测试工具,其开源地址为:https://github.com/SeleniumHQ/selenium。

2.1. 安装Selenium

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

2.2. 安装浏览器

Selenium是一个用于自动化测试的工具,而自动化测试需要模拟用户操作。而用户操作通常是通过浏览器完成的。所以Selenium需要与浏览器进行交互,模拟用户操作。但是,Selenium本身并不包含浏览器,需要通过浏览器驱动来实现与浏览器的交互。浏览器驱动充当着Selenium与浏览器之间的桥梁,通过驱动程序与浏览器进行通信,从而实现模拟用户操作的自动化测试。

本文仅使用Chrome浏览器,其驱动如下:
ChromeDriver 下载地址:https://chromedriver.storage.googleapis.com/index.html
基于Selenium技术方案的爬虫入门实践,数据分析,Python,selenium,爬虫,python,chrome
安装时,需要把“chromedriver.exe”放到chrome的目录下…\Google\Chrome\Application\ ,然后设置path环境变量,增加chrome的目录(本文为C:\Program Files\Google\Chrome\Application)。

chromedriver.exe

Starting ChromeDriver 114.0.5735.90 (386bc09e8f4f2e025eddae123f36f6263096ae49-refs/branch-heads/5735@{#1052}) on port 9515
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.

windows10上的环境变量配置如下:
基于Selenium技术方案的爬虫入门实践,数据分析,Python,selenium,爬虫,python,chrome

2.3. 示例代码

仍以爬取百度查询结果为例,模拟百度过程如下:

  • 打开百度网页
  • 输入查询内容,本文查询输入为“python”
  • 点击打开第一行结果

示例代码:

# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Chrome() 

url = 'https://www.baidu.com/'
driver.get(url)
driver.maximize_window()

# 获取百度搜索框元素
search_box = driver.find_element(By.ID ,"kw")   # 按ID查询
#search_box = driver.find_element(By.NAME,'wd') # 按Name查询
 
# 在搜索框中输入关键词
search_box.send_keys("Python")
 
# 模拟按下回车键进行搜索
search_box.send_keys(Keys.RETURN)
 
# 或者通过这种方法回车搜索
# ---------------------------------------
# 获取搜索按钮元素
# search_button = driver.find_element(By.ID, "su")
 
# 点击搜索按钮
# search_button.click()
#-----------------------------------------
 
# 等待页面加载完成
driver.implicitly_wait(10)
 
# 获取搜索结果列表元素
search_results = driver.find_elements(By.CSS_SELECTOR, ".result")
 
# 输出搜索结果标题和链接
for result in search_results:
    title = result.find_element(By.CSS_SELECTOR,"h3").text
    link = result.find_element(By.CSS_SELECTOR,"a").get_attribute("href")
    print(title, link)
 
# 点击第一个搜索结果链接
first_result = search_results[0].find_element(By.CSS_SELECTOR,"a")
first_result.click()
 
# 返回上一页
driver.back()
 
# 刷新当前页面
driver.refresh()
 
# 最大化浏览器窗口
driver.maximize_window()
 
# 关闭浏览器实例
driver.quit()

#time.sleep(1)

注:因为 find_element_by_css_selector 方法已经被弃用,最新版本的 Selenium 推荐使用 find_element 方法。因此,这段代码使用了更新后的方法来定位页面元素。

结果如下所示:
基于Selenium技术方案的爬虫入门实践,数据分析,Python,selenium,爬虫,python,chrome
需要注意的是,动态生成的页面可能需要更长的时间来加载和解析。因此,您可能需要增加等待时间或使用其他技术来加快页面加载速度。

3. 小结

本文介绍了如何使用Selenium技术进行爬虫实践,以百度网页查询为例。首先,我们将学习如何在Chrome浏览器开发者模式下获取元素。接下来,我们将指导您安装Selenium和Chromedriver。最后,我们将通过一个简单的示例来演示如何模拟百度搜索"Python"的过程。

通过以上示例代码,您可以实现使用Selenium技术模拟百度搜索"Python"的功能。这只是爬虫技术的入门,您还可以学习更多高级功能,如模拟登录、处理动态加载内容等。

参考:

虫师. selenium + python自动化测试环境搭建. 博客园. 2013.05

lovingsoft.chrome浏览器f12快速定位元素的技巧. CSDN博客. 2021.01文章来源地址https://www.toymoban.com/news/detail-647009.html

到了这里,关于基于Selenium技术方案的爬虫入门实践的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【Python爬虫与数据分析】爬虫selenium工具

    目录 一、selenium工具安装 二、selenium打开浏览器测试 三、无头浏览器 四、元素定位 五、页面滑动 六、按键、填写登录表单 七、页面切换 八、实战爬取当当网书籍数据 Selenium是Web的自动化测试工具,为网站自动化测试而开发,Selenium可以直接运行在浏览器上,它支持所有主

    2024年02月15日
    浏览(49)
  • 【头歌】——数据分析与实践-python-网络爬虫-Scrapy爬虫基础-网页数据解析-requests 爬虫-JSON基础

    第1关 爬取网页的表格信息 第2关 爬取表格中指定单元格的信息 第3关 将单元格的信息保存到列表并排序 第4关 爬取div标签的信息 第5关 爬取单页多个div标签的信息 第6关 爬取多个网页的多个div标签的信息 第1关 Scarpy安装与项目创建 第2关 Scrapy核心原理 第1关 XPath解析网页 第

    2024年01月22日
    浏览(59)
  • 爬虫与数据分析项目实战2.1 Selenium爬取Boss招聘信息

    完成: 1.爬取信息 2.基于爬取结果筛选符合条件的信息    岗位名称、薪资、岗位要求、地区、公司名称、公司规模、细节链接 3.筛选base杭州的岗位保存到csv文件中 But容易出现网络不稳定造成的无法定位元素所在位置的情况,小范围爬取可以 4.基于csv分析后续

    2024年02月08日
    浏览(48)
  • 爬虫入门指南(8): 编写天气数据爬虫程序,实现可视化分析

    天气变化是生活中一个重要的因素,了解天气状况可以帮助我们合理安排活动和做出决策。本文介绍了如何使用Python编写一个简单的天气数据爬虫程序,通过爬取指定网站上的天气数据,并使用Matplotlib库对数据进行可视化分析。通过这个例子,我们不仅可以学习Python的相关库

    2024年02月12日
    浏览(47)
  • Python网络爬虫逆向分析爬取动态网页、使用Selenium库爬取动态网页、​编辑将数据存储入MongoDB数据库

    目录 逆向分析爬取动态网页 了解静态网页和动态网页区别 1.判断静态网页  2.判断动态网页  逆向分析爬取动态网页 使用Selenium库爬取动态网页 安装Selenium库以及下载浏览器补丁 页面等待  页面操作 1.填充表单 2.执行JavaScript 元素选取 Selenium库的find_element的语法使用格式如下

    2024年02月15日
    浏览(118)
  • selenium+webdriver爬虫技术

    百度百科Selenium时,头一段文字介绍了selenium的主要作用和特点:selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:

    2024年02月13日
    浏览(89)
  • 运用了selenium的爬虫技术

    这里input()是为了延迟程序,避免网站打开后自动关闭 注意像这种模拟浏览器的操作尽量在pycharm中使用,jupyter操作起来会很慢。 注意一下如果在pycharm可以进行断点调试,在代码左边设置一个断点,然后F9继续执行,可以观察到浏览器是如何输入了你输入的内容。 刚才是用

    2024年02月03日
    浏览(30)
  • 基于网络爬虫的天气数据分析

    网络爬虫原理   网络爬虫是一种自动化程序,用于从互联网上获取数据。其工作原理可以分为以下几个步骤: 定义起始点:网络爬虫首先需要定义一个或多个起始点(URL),从这些起始点开始抓取数据。 发送HTTP请求:爬虫使用HTTP协议向目标网站发送请求,获取网页内容。

    2024年01月19日
    浏览(47)
  • 爬虫入门基础与Selenium反爬虫策略

    目录 一、爬虫入门基础 1、什么是爬虫? 2、爬虫的分类 3、爬虫的基本流程 二、Selenium简介 1、Selenium是什么? 2、Selenium的用途 三、应对反爬虫的Selenium策略 1、使用代理IP 2、模拟用户行为 3、设置合理的请求间隔时间 4、随机化请求参数 5、使用JavaScript渲染引擎 四、Seleniu

    2024年02月05日
    浏览(56)
  • 大数据经典技术解析:Hadoop+Spark大数据分析原理与实践

    作者:禅与计算机程序设计艺术 大数据时代已经来临。随着互联网、移动互联网、物联网等新兴技术的出现,海量数据开始涌现。而在这些海量数据的基础上进行有效的处理,成为迫切需要解决的问题之一。Apache Hadoop和Apache Spark是目前主流开源大数据框架。由于其易于部署

    2024年02月07日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包