爬虫利器一览

前言

爬虫(英文:spider),可以理解为简单的机器人,如此一个“不为名利而活,只为数据而生,目标单纯,能量充沛,不怕日晒雨淋,不惧寒冬酷暑”的家伙,真讨人喜欢~

在这里插入图片描述

在博主的历史文章中,已对爬虫的原理机制、实践操作做了基本的介绍。
如感兴趣,可直接拖到文末,双击666~

今天我们从爬虫日常中使用的工具,进行简单介绍,希望各位盆友有所收获。

一、网站分析

网站类型网站特点
动态网站数据通过一定的前端框架封装输出,且必须经过后台API获得
静态网站数据静态填充,所见即所得

我们通常遇到的数据源网站,不外乎以上两类,要么静态网页,要么动态网页。当然从爬虫的角度,静态有静态的处理方式,动态有动态的处理方式。

在这里插入图片描述
这里,举个栗子。以开源中国-博客为例,https://www.oschina.net/blog/recommend,这就是纯静态网站,可以直接进行数据获取。

二、数据抓包

对网站进行初步分析后,即可发起数据抓包了。此刻,可能有些同学不懂了,什么是抓包呀?

抓包(packet capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。——百度百科

简单一句话:作为程序员,如果不会抓包,就去钻研一下吧。抓包工具主要有:

工具名称工具简介
浏览器作为互联网的窗口,浏览器是最简单也是最直接的抓包工具,比如FF/Chrome
FiddlerFiddler是一个http协议调试代理工具,它能够记录并检查访问互联网之间的http通讯
PostmanPostman是一款功能超级强大的用于发送 HTTP 请求的工具,开适用于开发/测试
HttpWatchHttpWatch是一个可用于录制HTTP请求信息的工具,由Simtec Limited公司开发
WiresharkWireshark是非常流行的网络封包分析软件,可以截取各种网络数据包

以上工具,各有特色,也有各自适用的环境,各位盆友可自由选之。

三、数据解析

通过前两步准备后,即可进行数据解析和结构化处理。而通常使用的工具也不少,博主重点介绍几个。

1. Css selector

css 选择器,可划分为基本选择器、关系选择器、伪选择器三种类型不同的选择器。这是CSS开发的基础语法和规范。

在这里插入图片描述

2. Jsoup

Jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

这是一个来自官网的示例:通过设置select实现对document的遍历。

Document doc = Jsoup.connect("https://en.wikipedia.org/").get();
log(doc.title());
Elements newsHeadlines = doc.select("#mp-itn b a");
for (Element headline : newsHeadlines) {log("%s\n\t%s", headline.attr("title"), headline.absUrl("href"));
}
3. Xpath

XPath 表示 XML 路径语言。它使用非 XML 语法来提供一种灵活地定位(指向)XML 文档的不同部分的方法。

在这里插入图片描述

目前主流浏览器均已集成xpath插件,可快速定位所需的节点。


结语

一个优质的爬虫,从不拒绝贪婪,也不会肆无忌惮。虽然我们通过以上工具可以基本完成所需的数据抓取,但道亦有道,也需以“礼”服人。拒绝滥用爬虫,拒绝暴力破解~


精彩回顾

一文图解爬虫(spider)
一文图解爬虫_姊妹篇(spider)


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/616900.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Casper Labs 与 IBM Consulting 合作,AI透明度、审计能力的新方案

​ “全新解决方案,旨在帮助企业更有效地管理训练数据,这些数据由不同的组织通过生成式人工智能系统产生” 企业区块链软件和服务提供商 Casper Labs 与 IBM Consulting 共同宣布,它们将联手推出新的解决方案,以帮助客户在其人工…

VSCode 搭建Java开发环境

笔者使用最多的语言是C,也使用过不少其它语言,像Erlang,Python,Lua,C#等等,目前项目中在使用Go,但是没使用过Java。最近看到C#夺冠,首次荣获 TIOBE 年度编程语言,同时也看…

拯救者y9000p安装linux、windows双系统。

首先需要准备启动盘 我用的是Win32DiskImager来做的。资源使用的是ubuntu-20.04.6-desktop-amd64.iso。别用低版本,失败很多次之后的教训。 磁盘管理-磁盘分区-右键-压缩卷 这边分区出来之后,不要分配。安装时候会自动分配的。 重启之后F2进去BIOS设置…

使用ArduinoMqttClient库连接阿里云,并实现发送接收数据(ESP8266)

文章目录 引言一、MQTT理论部分二、使用MQTT.fx接入物联网设备三、使用ESP8266连接阿里云四、参考例程 引言 阿里云物联网平台的接入方式有很多种,从阿里云提供的开发文档可以看到,支持的接入协议有MQTT、HTTPS、CoAP、JT/808、GB/32960协议等等&#x…

数据库悲观锁 select for update的详解

一 作用 1.1 结论 在mysql中,select ... for update 仅适用于InnoDB,且必须在事务块中才能生效。Innodb引擎默认是行锁。 Select .... from where .... for update 如果在where的查询条件字段使用了【主键|索引】,则此命令上行锁。否…

2024,传统鞋服的“高端梦”该醒了

文 | 螳螂观察 作者 | 图霖 “一千块都不要的波司登,宝贝们还不冲吗?” 入夜,一位身着羽绒服的美女主播在灯火通明的直播间正声嘶力竭地反复呐喊。 一群不知是托还是真实消费者的用户在评论区敲出自己的身高体重,想从主播那得…

【计算机组成原理】IEEE 754 标准定义的浮点数表示格式

IEEE 754 IEEE 754是一种由美国电气和电子工程师协会(IEEE)制定的标准,用于定义浮点数的表示和运算。这个标准定义了浮点数的格式、舍入规则、特殊值的处理以及算术操作的执行方式。 IEEE 754浮点数标准主要定义了两种浮点数格式&#xff1…

基于LVGL编写的windows串口工具: LCOM

LCOM: Serial Port Tools based on LVGL (PC Software) 一直以来我都想用LVGL做一个真正意义上的PC软件,来验证或者表达LVGL出色的特性,现在我用LCOM做到了! LCOM 是一个基于LVGL编写的串口工具,界面简洁,功能出色&a…

Javaweb之SpringBootWeb案例查询部门以及前后端联调的详细解析

2.1 查询部门 2.1.1 原型和需求 查询的部门的信息:部门ID、部门名称、修改时间 通过页面原型以及需求描述,我们可以看到,部门查询,是不需要考虑分页操作的。 2.1.2 接口文档 部门列表查询 基本信息 请求路径:/depts …

Github项目推荐-Insomnia

项目地址 GitHub地址:GitHub - Kong/insomnia 官网:The Collaborative API Development Platform - Insomnia 项目简述 想必大家都知道PostMan吧。Insomnia可以说是PostMan的开源平替。页面ui很不错,功能强大,使用也比较方便。…

Matlab 字符识别OCR实验

Matlab 字符识别实验 图像来源于屏幕截图,要求黑底白字。数据来源是任意二进制文件,内容以16进制打印输出,0-9a-f’字符被16个可打印字符替代,这些替代字符经过挑选,使其相对容易被识别。 第一步进行线分割和字符分割…

C++设计模式-- 2.代理模式

文章目录 代理模式 代理模式 代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合 或不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 代理模式有以下三种角色&…

ES分词器

Analysis:文本分析是把全文本转换一系列单词的过程,也叫分词。Analysis是通过Analyzer(分词器)来实现的。 1.Analyzer组成 注意:在ES中默认使用标准分词器:StandardAnalyzer。特点是:中文是单字分词,英文是…

解锁加密经济领域的新篇章:Token Explorer 助您一臂之力

随着全球加密货币的普及,市场变化对于想要优化回报的投资者来说是一个挑战。碎片化的数据是一个问题,但是像 Footprint Analytics 的 Token Explorer 这样的创新解决方案,可以提供必要的加密经济生态聚类智能,帮助改善投资组合。 …

AOT-GAN-for-Inpainting项目解读|使用AOT-GAN进行图像修复

项目地址: https://github.com/researchmm/AOT-GAN-for-Inpainting 基于pytorch实现 论文地址: https://arxiv.org/abs/2104.01431 开源时间: 2021年 项目简介: AOT-GAN-for-Inpainting是一个开源的图像修复项目,其对 …

打铁需要自身硬,我敢和欧系谬论硬刚源自实力与信心

我揭露欧系数学荒谬的目的是驱逐纯粹数学出中国,以恢复中华数学体系、最终让中华数学领导世界;我从来不隐瞒自己的“野心”,我对此有着绝对的信心。民族情怀是中国数学人的短板 纯粹数学是欧洲人的文化、是欧系数学的主体,它的历…

小白进公司快速熟悉环境和代码的方法

1.企业开发模式 企业开发模式里,我们的项目模块可能非常多此时我们是不能将所有模块都拉取到本地的,主要原因如下: 我们很可能并没有全部工程代码的权限 微服务集群部署非常复杂,本地部署成本太高 微服务模块众多,本…

边缘计算AI智能分析网关V4算力分析及应用场景

一、硬件介绍 智能分析网关V4是TSINGSEE青犀视频推出的一款高性能、低功耗的软硬一体AI边缘计算硬件设备,硬件采用BM1684芯片,集成高性能8核ARM A53,主频高达2.3GHz。硬件内置近40种AI算法模型,支持对接入的视频图像进行人、车、…

适用于 Windows 的 12 个最佳免费磁盘分区管理器软件

分区是与其他部分分开的硬盘驱动器部分。它使您能够将硬盘划分为不同的逻辑部分。分区软件是一种工具,可帮助您执行基本选项,例如创建、调整大小和删除物理磁盘的分区。许多此类程序允许您更改磁盘片的标签以便于识别数据。 适用于 Windows 的 12 个最佳…

Defi安全--Zunami Protocol攻击事件分析

其它相关内容可见个人主页 1 Zunami攻击事件相关信息 2023.8.13发生在Ethereum上发生的攻击,存在两个攻击交易,具体信息如下: 攻击合约地址:Contract Address 攻击合约 攻击者地址:Zunami Protocol Exploiter 攻击…