爬虫利器一览

前言

爬虫(英文: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)


在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【深度学习】Anaconda3 + PyCharm 的环境配置 1:手把手带你安装 PyTorch 并创建 PyCharm 项目

前言 文章性质:实操记录 💻 主要内容:这篇文章记录了 PyTorch 的安装过程,包括: 1. 创建并激活新的虚拟环境; 2. 查看电脑是否支持 CUDA 以及 CUDA 的版本; 3. 根据 CUDA 的版本安装 PyTorch&am…

归并排序例题——逆序对的数量

做道简单一点的题巩固一下 归并排序实现步骤 将整个区间 [l, r] 划分为 [l, mid] 和 [mid1, r]。 递归排序 [l, mid] 和 [mid1, r]。 将左右两个有序序列合并为一个有序序列。 题目描述 给定一个长度为 n 的整数数列,请计算数列中的逆序对的数量。 逆序对的定义…

简单的推箱子游戏实战

目录 项目分析 地图初始化 背景图片 游戏场景图片: 热键控制 按键设置 确定人物位置 实现人物移动(非箱子,目的地) 推箱子控制 游戏结束 最终代码 合法性判断: 项目分析 墙:0,地板:1,箱子目的地:2,小人:3,箱子:4,箱子命中目标:5 地图初始化 背景图片 #include <…

煤炭行业电力能源消耗监测管理系统的作用有哪些?

如果说&#xff0c;通风是煤炭的呼吸系统&#xff0c;那么供电就是煤矿的神经系统。安全供电对安全生产有着重要的意义。一旦供电系统出现故障或停电&#xff0c;煤矿的生产活动将无法正常进行&#xff0c;这将产生严重的经济损失甚至危及工人的生命安全。 为了提高煤矿供电系统…

机器视觉检测设备在连接器外观缺陷检测中的应用

作为传输电流或信号连接两个有源器件的器件&#xff0c;连接器被广泛应用于各个行业&#xff0c;从手机、平板、电脑&#xff0c;到冰箱、空调、洗衣机&#xff0c;再到汽车、国防、航空&#xff0c;处处是它的所在。每个电子产品少了连接器将无法运作&#xff0c;因此&#xf…

在Docker上配置TensorFlow

在Docker上配置TensorFlow 配置WSL 参考教程&#xff1a;https://blog.csdn.net/m0_63969219/article/details/124632640 在上述教程配置的过程中&#xff0c;可能很难在微软商店下到ubuntu&#xff0c;下面给出另外一种解决方案&#xff1a; 接着上面教程 wsl --set-defaul…

【控制篇 / 策略】(7.4) ❀ 04. 修改IP地理位置数据库 ❀ FortiGate 防火墙

【简介】虽然通过FortiGuard服务可以更新IP地理位置数据库&#xff0c;但是实际使用环境中&#xff0c;总会有部分IP地址不符合我们的愿景&#xff0c;这种情况下&#xff0c;可以通过修改IP地理位置数据库来达到我们的目标。 更新IP地理位置数据库 更新IP地理位置数据库是Fort…

蓝桥杯练习题(四)

&#x1f4d1;前言 本文主要是【算法】——蓝桥杯练习题&#xff08;四&#xff09;的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 …

算法34:贴纸拼词(力扣691题)

题目&#xff1a; 我们有 n 种不同的贴纸。每个贴纸上都有一个小写的英文单词。 您想要拼写出给定的字符串 target &#xff0c;方法是从收集的贴纸中切割单个字母并重新排列它们。如果你愿意&#xff0c;你可以多次使用每个贴纸&#xff0c;每个贴纸的数量是无限的。 返回你…

ansible从入门到精通(完整篇)

文章目录 01 Ansible介绍与安装1. 介绍 Ansible1.1 什么是 Ansible?1.2 Ansible 无需代理1.3 Ansible 方式 2. 安装 Ansible2.1 控制节点2.2 受管主机2.3 基于Windows的受管主机2.4 受管网络设备2.5 安装Ansible 02 部署Ansible1. 构建Ansible清单1.1 定义清单1.2 使用静态清单…

人脸识别(Java实现的)

虹软人脸识别&#xff1a; 虹软人脸识别的地址&#xff1a;虹软视觉开放平台—以免费人脸识别技术为核心的人脸识别算法开放平台 依赖包&#xff1a; 依赖包是从虹软开发平台下载的 在项目中引入这个依赖包 pom.xml <!-- 人脸识别 --><dependency><gr…

Find My游戏手柄|苹果Find My技术与手柄结合,智能防丢,全球定位

游戏手柄是一种常见电子游戏机的部件&#xff0c;通过操纵其按钮等&#xff0c;实现对游戏虚拟角色的控制。随着游戏设备硬件的升级换代&#xff0c;现代游戏手柄又增加了&#xff1a;类比摇杆&#xff08;方向及视角&#xff09;&#xff0c;扳机键以及HOME菜单键等。现在的游…

Find My资讯|AirTag 2或推迟上市,Find My功能十分强大

苹果于 2021 年4月推出了初代 AirTag。苹果已将第二代 AirTag 的推出推迟到 2025 年&#xff0c;目前苹果官方并不急于推出AirTag 2的原因还有AirTag所搭载的搜寻定位功能非常的强大&#xff0c;在市场上几乎没有任何竞争对手可言。 AirTag使用蓝牙和苹果设备的“查找我的”网…

Python Web开发库之vcrpy 使用详解

概要 在现代Web开发中&#xff0c;HTTP请求是不可避免的一部分。然而&#xff0c;通过网络发送HTTP请求可能会导致一些问题&#xff0c;如慢速响应、网络不稳定和API限制。为了解决这些问题&#xff0c;Python社区开发了一些工具和库&#xff0c;其中之一就是vcrpy。vcrpy是一…

软件分发点(DP)的合理规划

软件分发点&#xff08;Distribution Point, DP&#xff09;是用于托管文件以分发到计算机和移动设的服务器&#xff0c;Jamf Pro可以通过分发点分发以下类型的文件&#xff1a; 软件包 脚本 内部应用程序 内部书籍 Jamf Pro支持两种类型的分发点&#xff0c;您可以使用这些类型…

铭文 LaunchPad 平台 Solmash 推出早鸟激励计划

为感谢用户对Solmash的支持&#xff0c;Solmash特别推出“Solmash早鸟激励计划”&#xff0c;以回馈社区的早期参与者&#xff0c;这是专为已经参与Staking Pool或Honest Pool的用户推出的激励。 Solmash NFT激励 为确保该NFT的精准发放&#xff0c;请在Jan 11th, 2024 12:00 U…

react hooks 高德地图的应用

一、准备 1.登录控制台 登录 高德开放平台控制台&#xff0c;如果没有开发者账号&#xff0c;请 注册开发者。 2.创建 key 进入应用管理&#xff0c;创建新应用&#xff0c;新应用中添加 key&#xff0c;服务平台选择 Web端(JS API)。 3.获取 key 和密钥 创建成功后&#x…

无监督学习Principal Component Analysis(PCA)精简高维数据

目录 介绍 一、PCA之前 二、PCA之后 介绍 Principal Component Analysis (PCA) 是一种常用的数据降维和特征提取技术。PCA通过线性变换将高维数据映射到低维空间&#xff0c;从而得到数据的主要特征。PCA的目标是找到一个正交基的集合&#xff0c;使得将数据投影到这些基…

git提交记录全部删除

目录 问题描述 解决方案 结果 问题描述 新复制的项目具有特比多的提交记录我想给他清除&#xff0c;因为不清楚过多历史也就导致包特别大下载和提交等方面都不是很快 解决方案 查看代码clone网址&#xff1b; 打开远程仓库&#xff0c;选择要去除历史记代码分支&#xff08…

CSS3 边框border、outline、box-shadow

1 border 语法&#xff1a;border: width style color 2 outline 语法&#xff1a;outline: width style color 2.1 outline-offet MDN解释&#xff1a;用于设置outline与一个元素边缘或边框之间的间隙 即&#xff1a;设置outline相对border外边缘的偏移&#xff0c;可以为…