爬虫利器一览

前言

爬虫(英文: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.rhkb.cn/news/238813.html

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

相关文章

含PEMFC的热电联供系统能量管理策略Simulink仿真

1.光伏发电系统 在直流微电网中,光伏电池系统经过升压DC/DC变换器接入直流微电网提供功率。在不同的系统运行条件下,光伏电池系统有三种工作模式:MPPT 模式、下垂模式和空闲模式。由于光伏阵列的输出特性随着环境条件影响,光伏电池…

【科技素养题】少儿编程 蓝桥杯青少组科技素养题真题及解析第22套

少儿编程 蓝桥杯青少组科技素养题真题及解析第22套 1、植物的叶子多为绿色,这主要是因为它们含有 A、绿色色素 B、叶绿素 C、花青素 D、细胞 答案:B 考点分析:主要考查小朋友们生物知识的储备;叶绿素是植物叶子中的一种色素,它可以吸收太阳光中的能量并转化为植物所…

数据库多表查询练习题

二、多表查询 1. 创建 student 和 score 表 CREATE TABLE student ( id INT ( 10 ) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR ( 20 ) NOT NULL , sex VARCHAR ( 4 ) , birth YEAR , department VARCHAR ( 20 ) , address VARCHAR ( 50 ) ); 创建 s…

嵌入式软件工程师面试题——2025校招社招通用(十八)

说明: 面试群,群号: 228447240面试题来源于网络书籍,公司题目以及博主原创或修改(题目大部分来源于各种公司);文中很多题目,或许大家直接编译器写完,1分钟就出结果了。但…

Android基于Matrix绘制PaintDrawable设置BitmapShader,以手指触点为中心显示原图的圆切图,Kotlin(4)

Android基于Matrix绘制PaintDrawable设置BitmapShader,以手指触点为中心显示原图的圆切图,Kotlin(4) 这篇 Android基于Matrix绘制PaintDrawable设置BitmapShader,以手指触点为中心显示原图像圆图,Kotlin&am…

电阻表示方法和电路应用

电阻 电阻的表示方法 直标法 直标法是将电阻器的类别及主要技术参数的数值直接标注在电阻器表面上 通常用3位阿拉伯数字来标注片状电阻的阻值,其中第1位数代表阻值的第1位有效数;第2位数代表阻值的第二位有效数字;第3位数代表阻值倍率&…

腾讯云服务器多少钱?2024年腾讯云服务器报价明细表

腾讯云服务器租用价格表:轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年,540元三年、2核4G5M带宽218元一年,2核4G5M带宽756元三年、轻量4核8G12M服务器446元一年、646元15个月,云服务器CVM S5实例2核2G配置280.8元一年…

小迪安全第二天

文章目录 一、Web应用,架构搭建二、web应用环境架构类三、web应用安全漏洞分类总结 一、Web应用,架构搭建 #网站搭建前置知识 域名,子域名,dns,http/https,证书等 二、web应用环境架构类 理解不同web应用组成角色功能架构 开发…

探索未来餐饮:构建创新连锁餐饮系统的技术之旅

随着数字化时代的发展,连锁餐饮系统的设计和开发不再仅仅关乎订单处理,更是一场充满技术创新的冒险。在本文中,我们将深入研究连锁餐饮系统的技术实现,带你探索未来餐饮业的数字化美食之旅。 1. 构建强大的后端服务 在设计连锁…

【网络取证篇】Windows终端无法使用ping命令解决方法

【网络取证篇】Windows终端无法使用ping命令解决方法 以Ping命令为例,最近遇到ping命令无法使用的情况,很多情况都是操作系统"环境变量"被改变或没有正确配置导致—【蘇小沐】 目录 1、实验环境(一)无法ping命令 &a…

中霖教育:2024年注册会计师报名缴费时间

注册会计师考试的报考人数逐年攀升,对于想要报考注会的考生来说,了解报名时间做好备考规划十分重要。 2024年注会报名时间已经确定 报名时间:4月8日8:00—4月30日20:00。 交费时间:6月13日—6月28日8:00-20:00。 温馨提示&…

stable diffusion使用相关

IP Adapter,我愿称之它为SD垫图 IP Adapter是腾讯lab发布的一个新的Stable Diffusion适配器,它的作用是将你输入的图像作为图像提示词,本质上就像MJ的垫图。 IP Adapter比reference的效果要好,而且会快很多,适配于各种…

gogs git创建仓库步骤

目录 引言创建仓库clone 仓库推送代码 引言 Gogs 是一款类似GitHub的开源文件/代码管理系统(基于Git),Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。 创建仓库 git中的组织可以把它看成是相关仓库的集合&#xff0c…

阳光抑郁症测试

大部分人对抑郁症的理解,就是每天无精打采,死气沉沉,可实际上,还有一种阳光抑郁症,完全不是这个样子。这种抑郁症的人,做事情非常有活力,魅力十足,给人感觉十分有自信,但…

网络基础学习(3):交换机

1.交换机结构 (1)网线接口和后面的电路部分加在一起称为一个端口,也就是说交换机的一个端口就相当于计算机上的一块网卡。 如果在计算机上安装多个网卡,并让网卡接收所有网络包,再安装具备交换机功能的软件&#xff0…

第十二章 Java内存模型与线程(二)

文章目录 12.4 Java与线程12.4.1 线程的实现12.4.2 Java线程调度12.4.3 状态转换 12.4 Java与线程 12.4.1 线程的实现 实现线程主要有三种方式:使用内核线程实现(1: 1 实现),使用用户线程实现(1&#xff…

入门实战丨Python小游戏经典案例

文章目录 写在前面判断与循环小游戏猜数游戏龙的世界 写在后面 写在前面 本期内容:两个个简单的Python小游戏入门案例。 实验需求:python 实验目标:掌握基本的判断与循环语句。 判断与循环 判断与循环是编程中非常重要的两个概念&#x…

【JaveWeb教程】(21) MySQL数据库开发之多表设计:一对多、一对一、多对多的表关系 详细代码示例讲解

目录 2. 多表设计2.1 一对多2.1.1 表设计2.1.2 外键约束 2.2 一对一2.3 多对多2.4 案例 2. 多表设计 关于单表的操作(单表的设计、单表的增删改查)我们就已经学习完了。接下来我们就要来学习多表的操作,首先来学习多表的设计。 项目开发中,在进行数据库…

Vue高级(二)

3.搭建vuex环境 创建文件:src/store/index.js //引入Vue核心库import Vue from vue//引入Vueximport Vuex from vuex//应用Vuex插件Vue.use(Vuex)//准备actions对象——响应组件中用户的动作const actions {}//准备mutations对象——修改state中的数据const mutat…

NetCore部署微服务(三)

接上文,服务端部署完成之后,同样我们也需要修改一下客户端代码 Blocking Queries 1.1 服务发现 在客户端代码中使用Nuget安装consul包 修改配置文件,我们首先需要把consul的请求地址配置在配置文件中 修改control方法 using Consul; usin…