python爬虫进阶篇:Scrapy中使用Selenium模拟Firefox火狐浏览器爬取网页信息

这篇具有很好参考价值的文章主要介绍了python爬虫进阶篇:Scrapy中使用Selenium模拟Firefox火狐浏览器爬取网页信息。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

接着上一篇的笔记,Scrapy爬取普通无反爬、静态页面的网页时可以顺利爬取我们要的信息。但是大部分情况下我们要的数据所在的网页它是动态加载出来的(ajax请求后传回前端页面渲染、js调用function等)。这种情况下需要使用selenium进行模拟人工操作浏览器行为,实现自动化采集动态网页数据。

二、环境搭建

  • Scrapy框架的基本依赖包(前几篇有记录)
  • selenium依赖包
    • pip install selenium==4.0.0a6.post2
    • pip install certifi
    • pip install urllib3==1.25.11
  • 安装Firefox浏览器和对应版本的驱动包
    • 火狐浏览器我用的是最新版121.0
    • 驱动的版本为0.3.0,见上方资源链接
    • 把驱动放到python环境的Scripts文件夹下

三、代码实现

  • settings设置
SPIDER_MIDDLEWARES = {
   'stock_spider.middlewares.StockSpiderSpiderMiddleware': 543,
}

DOWNLOADER_MIDDLEWARES = {
   'stock_spider.middlewares.StockSpiderDownloaderMiddleware': 543,
}

ITEM_PIPELINES = {
   'stock_spider.pipelines.StockSpiderPipeline': 300,
}
  • middlewares中间件
from selenium.webdriver.firefox.options import Options as firefox_options


spider.driver = webdriver.Firefox(options=firefox_options())  # 指定使用的浏览器
  • process_request
    def process_request(self, request, spider):
        # Called for each request that goes through the downloader
        # middleware.

        # Must either:
        # - return None: continue processing this request
        # - or return a Response object
        # - or return a Request object
        # - or raise IgnoreRequest: process_exception() methods of
        #   installed downloader middleware will be called

        spider.driver.get("http://www.baidu.com")
        return None
  • process_response
	from scrapy.http import HtmlResponse
    def process_response(self, request, response, spider):
        # Called with the response returned from the downloader.

        # Must either;
        # - return a Response object
        # - return a Request object
        # - or raise IgnoreRequest
        response_body = spider.driver.page_source

        return HtmlResponse(url=request.url, body=response_body, encoding='utf-8', request=request)

启动爬虫后就可以看到爬虫启动了浏览器驱动,接下来就可以实现各种模拟人工操作了文章来源地址https://www.toymoban.com/news/detail-765925.html

到了这里,关于python爬虫进阶篇:Scrapy中使用Selenium模拟Firefox火狐浏览器爬取网页信息的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 免费 Selenium各大浏览器驱动【谷歌chrme、火狐Firefox、IE浏览器】

    aardio群 625494397 废话不多说 直接开整! 竟然还有脸收费 服了 下载对应版本的浏览器驱动 目标网址 应用场景 Selenium库涉及到 安装selenium库 下载对应浏览器驱动 找到浏览器对应版本 最后直接上代码

    2024年02月16日
    浏览(74)
  • python爬虫实战 scrapy+selenium爬取动态网页

    最近学习了scrapy爬虫框架,想要找个目标练练手。由于现在很多网页都是动态的,因此还需要配合selenium爬取。本文旨在记录这次学习经历,如有疑问或不当之处,可以在评论区指出,一起学习。 对scrapy不了解的同学可以阅读这篇文章 爬虫框架 Scrapy 详解,对scrapy框架介绍的

    2024年02月07日
    浏览(83)
  • Python爬虫-使用Selenium模拟百度登录

        前面我已经安装好了Selenium并模拟成功了一下打开百度页面并进行查询,让我这个python初学者信心倍增,今天再来试一试百度登录 把打开百度的代码放到构造方法中 ps:那个文件目录是用于后面滑块验证图片保存的。 点击右上角的“登录”按钮,打开登录框, 代码如下:

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

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

    2024年02月09日
    浏览(46)
  • 爬虫进阶之selenium模拟浏览器

    Selenium是一个用于自动化浏览器操作的工具,通常用于Web应用测试。然而,它也可以用作爬虫,通过模拟用户在浏览器中的操作来提取网页数据。以下是有关Selenium爬虫的一些基本介绍: 浏览器自动化: Selenium允许你通过编程方式控制浏览器的行为,包括打开网页、点击按钮

    2024年01月20日
    浏览(69)
  • 在scrapy 使用selenium模拟登录获取cookie

    前言 最近有一点点爬虫需求,想总结一下scrapy框架的一些基本使用方法,加深印象,自己一直习惯使用一些脚本文件运行爬虫,面对数据量非常大,稳定性要求比较高的,效率需求比较高的情况下还是用scrapy较为合适,scrapy是一个异步的框架,所有的请求都是阻塞的,虽然在

    2024年02月11日
    浏览(61)
  • 爬虫学习 Scrapy中间件&代理&UA随机&selenium使用

    控制台操作 (百度只起个名 scrapy startproject mid scrapy genspider baidu baidu.com setting.py内 运行 scrapy crawl baidu middlewares.py 中间件 先看下载器中间件 重点在 process_request 在引擎将请求的信息交给下载器之前,自动的调用该方法 process_response… process_exception 异常 (看名就知道了…) spider

    2024年03月23日
    浏览(61)
  • python爬虫 scrapy+selenium+webdriver实现鼠标滑动破解阿里云盾快验证

    在爬取jianshu文章的时候发现,jianshu竟然买了阿里云的盾块验证!!!很是头疼,虽然说没有其他图片匹配的那么麻烦,但是阿里云的人机验证和算法真的是顶尖的,查阅了多个资料最后没办法,才实现用webdriver模拟鼠标去通过验证 首先我们需要安装webdriver驱动和Google Chrom

    2024年02月03日
    浏览(64)
  • Firefox(火狐),使用技巧汇总,问题处理

    说明火狐如何安装在C盘之外的盘,即定制安装路径。 如何将同步功能切换到本地服务上。默认是国际服务器。 安装在C盘之后如何解决无法自动同步之前安装的扩展问题。 扩展或插件失效问题解决方案。 分享一些火狐比较好用的扩展和插件。 火狐目前的安装包,现在做的和

    2024年02月11日
    浏览(67)
  • Python爬虫入门:使用selenium库,webdriver库模拟浏览器爬虫,模拟用户爬虫,爬取网站内文章数据,循环爬取网站全部数据。

    *严正声明:本文仅限于技术讨论与分享,严禁用于非法途径。 目录 准备工具: 思路: 具体操作: 调用需要的库: 启动浏览器驱动: 代码主体:  完整代码(解析注释): Python环境; 安装selenium库; Python编辑器; 待爬取的网站; 安装好的浏览器; 与浏览器版本相对应的

    2023年04月24日
    浏览(57)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包