热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用FireBug插件辅助采集网页动态加载数据

许多人在遇到网页动态加载数据的时候都习惯于使用seleniumwebdriver这款自动化测试工具,对接上浏览器驱动可以实现对javascript代码的逆向解析。但这种方式有1个明显的弊端:性

许多人在遇到网页动态加载数据的时候都习惯于使用selenium webdriver这款自动化测试工具,对接上浏览器驱动可以实现对Javascript代码的逆向解析。但这种方式有1个明显的弊端:性能太差。更重要的是,其采集效率的下限很大程度上并不取决于数据采集者,而是取决于网页上有多少Javascript代码,如果这些代码很多,那么我们的网络爬虫运行端就需要耗费更多的资源来解析这些Javascript代码;然而,如果说10万行Javascript代码中只有1000行是加载数据的代码,那就非常不划算了……

解决这种问题最好的办法就是直接把Javascript中加载的数据采集下来,避免运行庞大的selenium webdriver和各种浏览器驱动,也避免解析过多无关的Javascript代码。毫无疑问,采集数据的性能会大幅度上升,也省下了许多资源。

以上就是不使用selenium webdriver的好处。下面来说说具体怎么去实现。

FireFox浏览器大家都知道,前端开发者们也都应该知道这个浏览器有个FireBug插件十分有助于调试前端代码,在爬虫开发者们的眼中,这个插件还对编写网络爬虫有很大的帮助,其灵活性能够让开发者迅速追踪到网页动态加载的数据。

一、安装FireBug插件

这里网上有很多资料,百度经验可以直接找到。最新版本的FireFox浏览器上默认安装有FireBug插件,不需要手动安装;老版本的FireFox安装方法见百度经验,这里不详细说明。这个插件安装完成后,打开FireFox浏览器,按下F12会弹出调试器,这就是我们的FireBug了,说明我们安装成功了。

二、使用FireBug进一步分析爬取目标

这里写图片描述

上图所示是网页中通过ajax请求得到的json格式数据,也就是动态加载的数据,现在把这些数据复制下来,粘贴到json viewer工具中,可以得到一个被json格式化以后的json对象视图,方便分析数据结构。但有时出来的json数据中有大量空格换行,导致json viewer解析不出来,所以我更推荐直接在FireBug中,查看json对象数据。如下图:

这里写图片描述

三、使用提取json数据

在FireBug中查看到了返回Ajax回调的JSON数据的那个请求URL以后,就意味着:请求该URL可以获取其返回的JSON格式数据。

http://aigaogao.com/tools/action.aspx?act=sdc
把这段URL复制到浏览器的地址栏中,回车。可以看到我们要的数据。
这里写图片描述

import requests

url='http://aigaogao.com/tools/defaulttools.html'
result=requests.get(url)
html=result.content
print html

运行以上代码,我们可以得到图片中同样的数据。

这里写图片描述

至此,便实现了对动态网页的逆向工程。不需要渲染js代码也能获取到动态加载的数据。


推荐阅读
  • 作为软件工程专业的学生,我深知课堂上教师讲解速度之快,很多时候需要课后自行消化和巩固。因此,撰写这篇Java Web开发入门教程,旨在帮助初学者更好地理解和掌握基础知识。通过详细记录学习过程,希望能为更多像我一样在基础方面还有待提升的学员提供有益的参考。 ... [详细]
  • 全面解析JavaScript代码注释技巧与标准规范
    在Web前端开发中,JavaScript代码的可读性和维护性至关重要。本文将详细介绍如何有效地使用注释来提高代码的可读性,并探讨JavaScript代码注释的最佳实践和标准规范。通过合理的注释,开发者可以更好地理解和维护复杂的代码逻辑,提升团队协作效率。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • Unity3D 中 AsyncOperation 实现异步场景加载及进度显示优化技巧
    在Unity3D中,通过使用`AsyncOperation`可以实现高效的异步场景加载,并结合进度条显示来提升用户体验。本文详细介绍了如何利用`AsyncOperation`进行异步加载,并提供了优化技巧,包括进度条的动态更新和加载过程中的性能优化方法。此外,还探讨了如何处理加载过程中可能出现的异常情况,确保加载过程的稳定性和可靠性。 ... [详细]
  • 在使用USB接口的二维条码扫描器时,发现其无法正确识别条码中的中文字符。然而,采用串口连接的方式则能够成功识别。目前面临的问题是如何将通过串口获取的数据在网页中进行实时展示,希望各位专家能提供解决方案,不胜感激。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • NFT市场热度持续攀升,波卡能否抓住机遇迎来NFT夏季热潮?
    NFT市场热度持续攀升,波卡能否抓住机遇迎来NFT夏季热潮? ... [详细]
  • 在List和Set集合中存储Object类型的数据元素 ... [详细]
  • 全面指南:安装Adobe Photoshop 2020及所有PS版本软件详细步骤
    全面指南:安装Adobe Photoshop 2020及所有PS版本软件详细步骤 ... [详细]
  • 本指南介绍了如何在ASP.NET Web应用程序中利用C#和JavaScript实现基于指纹识别的登录系统。通过集成指纹识别技术,用户无需输入传统的登录ID即可完成身份验证,从而提升用户体验和安全性。我们将详细探讨如何配置和部署这一功能,确保系统的稳定性和可靠性。 ... [详细]
  • 本文详细介绍了一种利用 ESP8266 01S 模块构建 Web 服务器的成功实践方案。通过具体的代码示例和详细的步骤说明,帮助读者快速掌握该模块的使用方法。在疫情期间,作者重新审视并研究了这一未被充分利用的模块,最终成功实现了 Web 服务器的功能。本文不仅提供了完整的代码实现,还涵盖了调试过程中遇到的常见问题及其解决方法,为初学者提供了宝贵的参考。 ... [详细]
  • 本文介绍了 Vue 开发的入门指南,重点讲解了开发环境的配置与项目的基本搭建。推荐使用 WebStorm 作为 IDE,其下载地址为 。安装时请选择适合您操作系统的版本,并通过 获取激活码。WebStorm 是前端开发者的理想选择,提供了丰富的功能和强大的代码编辑能力。 ... [详细]
  • 【图像分类实战】利用DenseNet在PyTorch中实现秃头识别
    本文详细介绍了如何使用DenseNet模型在PyTorch框架下实现秃头识别。首先,文章概述了项目所需的库和全局参数设置。接着,对图像进行预处理并读取数据集。随后,构建并配置DenseNet模型,设置训练和验证流程。最后,通过测试阶段验证模型性能,并提供了完整的代码实现。本文不仅涵盖了技术细节,还提供了实用的操作指南,适合初学者和有经验的研究人员参考。 ... [详细]
  • 在前文探讨了Spring如何为特定的bean选择合适的通知器后,本文将进一步深入分析Spring AOP框架中代理对象的生成机制。具体而言,我们将详细解析如何通过代理技术将通知器(Advisor)中包含的通知(Advice)应用到目标bean上,以实现切面编程的核心功能。 ... [详细]
author-avatar
霍任芳
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有