爬虫基本原理

〖Python网络爬虫实战③〗- 爬虫的基本原理 简单来说,爬虫就是获取网页并提取和保存信息的自动化程序,下面概要介绍一下。这里介绍了爬虫的一些基本原理,这可以帮助我们在后面编写爬虫时更加得心应手。 阅读详情
爬虫概述

简单来说,爬虫就是获取网页并提取和保存信息的自动化程序。

获取网页

爬虫首先要做的工作就是获取网页,这里就是获取网页的源代码。
源代码里包含了网页的部分有用信息,所以只要把源代码获取下来,就可以从中提取想要的信息了。

我们知道浏览器向服务器发送一个请求,返回的响应体就是网页的源代码。所以,爬虫最关键部分就是构造一个请求并发送给服务器,然后接收到响应并将其解析出来,这个流程我们可以借助Python中的urllib、request等库来完成HTTP请求操作,请求和响应都可以用库提供的数据结构来表示,得到响应后只需要解析数据结构中Body部分即可,即得到网页的源代码。

提取信息

获取网页源代码后,接下来就是分析网页源代码,从中提取我们想要的数据。首先,最通用的方法就是采用正则表达式,这是一个万能的方法,但是不建议使用它来解析网页源代码,因为构造正则表达式时比较复杂而且还容易出错。

由于网页的结构有一定的规则,比如说某节点有着某属性、某样式,所以我们可以采用Beautiful Soup、lxml等第三方扩展库来高效地从中提取网页的信息,如节点的属性、文本值等。

保存数据

提取信息后,我们一般会将提取到的数据保存到某处以便后续使用。保存信息的形式有多种多样,比如我们可以简单的保存为TXT文本或者时JSON文本,也可以保存到关系型数据库或非关系型数据库,如MySQL和MongoDB等。

自动化程序

说到自动化程序,意思是说程序可以代替人来完成这些操作。当然我们手工也可以完成这些操作,但是当信息量特别大或者向快速获取大量数据的话,肯定还是要借助程序来帮我们完成。爬虫就是代替我们来完成这份工作的自动化程序,它可以在抓取的过程中进行各种异常处理、错误重试等操作,确保爬去持续高效地运行。

能抓取什么样的数据

在网页中我们能看到各种各样的信息,最常见的便是常规的网页,它们对应着HTML代码,而最常抓取的便是HTML源代码。

另外,可能有些网页返回的不是HTML代码,而是一个JSON字符串(其中API接口大多采用这样的形式),因为这种格式的数据方便传输和解析,同样可以抓取,这种数据提取更方便。

此外,我们还可以看到各种各样二进制数据,比如图片、音频等。利用爬虫,我们可以将这些二进制数据爬取下来,然后保存成对应的文件名。

另外,还可以看到各种各样扩展名的文件,如css、js等文件,这些其实也是最普通的文件,只要在浏览器里面可以访问到,就可以将其爬取下来。

JavaScript渲染页面

有时候,我们用urllib或request抓取网页时,得到的源代码实际和浏览器看到的不一样。

这是一个非常常见的问题,现在网页越来越多地采用Ajax、前端模块化工具来构建,比如vue等框架,采用Ajax、前端模块化工具来构建的网页有可能都是由JavaScript渲染出来的,也就是说原始的HTML代码是一个空壳。如图所示:
在这里插入图片描述
body节点里面只有一个id为app的节点,但是需要注意的是在body节点后引入了app.js,它便是负责整个网站的渲染。

在浏览器中打开这个页面时,首先会加载这个HTML内容,接着浏览器会发现其中引入了一个app.js文件,然后便会接着去请求这个文件,获取到该文件后,便会执行其中的JavaScript代码,而JavaScript则会改变HTML中的节点,向其添加内容,最后得到完整的页面。

但是在用urllib或request等库请求当前页面时,我们得到的只是这个HTML代码,它不会帮助我们去继续加载这个JavaScript文件,这样也就看不到浏览器中的内容了。

这也解释了为什么有时我们得到的源代码额浏览器中看到的不一样。

因此,使用基本HTTP请求库得到的源代码可能和浏览器中的页面不太一样。对于这样的情况,我们可以分析其后台Ajax接口,也可以使用Selenium、Splash这样的库来实现模拟JavaScript渲染。

参考文档

崔庆才老师的《Python3 网络爬虫开发实战》

FPGA之道(22)VHDL基本程序框架 在介绍详细的VHDL语法之前,让我们先来了解一下VHDL代码的基本程序框架,这样可以让我们先对VHDL程序设计有一个整体的概念把握,进而在后续的VHDL语法学习中做到有的放矢。 阅读详情

相关推荐

一文读懂:CAN总线Bus-Off的触发条件与自动恢复机制

本文详细解析CAN总线Bus-Off状态的触发条件与自动恢复机制。根据ISO 11898-1标准,当发送错误计数器(TEC)超过255时节点进入Bus-Off状态,并通过检测128次总线空闲条件实现自动恢复。文章结合实战案例,探讨硬件故障、软件配置及电磁干扰等常见触发场景,并提供快慢恢复策略与调试方法,帮助工程师快速定位并解决CAN网络故障。

rgv234567的博客 359

龟速学爬虫笔记②

简单介绍了爬虫的原理

weixin_52034407的博客 289

EDA课程实验:《数字逻辑电路》实验四___基于Minisys 平台 VIVADO工具与Verilog语言

(4)使用 Verilog HDL 实现一个分频器 clock_div,输入的是系统提供的 100MHz 频率,输出的是 1Hz 频率,占空比是 1:2,(实际上可以用一个加 1 计数器来实现降频,输入的是一个 100MHz 频率的方波,对这 个方波计数 1 亿次刚好到 1 秒(1Hz),题目要求输出频率占空比是 1:2,也就是这个 1Hz 的 方波高电平和低电平各 500ms,可以采用计数到中间值的时候输出电平翻转。(1)1) 拨动 SW1~0 为 01,按下 P4 按钮,GLD1~0 为 01;

ssjy_的博客 1295

(二)跨门槛——爬虫基础

1. 概述 简单来说,爬虫就是获取网页并提取和保存信息的自动化程序。其应用运行的主要流程: 首先,对待爬取的目标网站进行确定,并从已给定的初始URL链接中提取出一个,对该链接上的信息内容进行分析采集,最终储存到数据库当中。 其后,将网站中未经访问的链接纳入到待爬行列表当中,按照特定顺序逐个进行链接页面的提取、访问、分析、采集、储存。 最后,在循环执行爬行动作并达到程序预设的停止条件时,网络爬虫系统即可自动终止运行。 获取网页——网页源代码 提取信息——分析网页源代码 保存数据——TXT/..

铃响了铎 1048

一起学习Avalonia(十三)

Avalonia 前面已经简单介绍了一下相关开发,有一个系统的了解。 到今天Avalonia已经基本成熟,但是扩展支持的还是不可能达到大企业的,我估计这也不可能。考虑了下,微软的MAUI框架可能会普及性更高,Avalonia也是我无意间知道的。 微软毕竟是会宣讲的全球。并且微软全球研发投入很大,全部专职开发,这种速度当然大。但是MAUI根据计划,可能还要很长时间,而且是社区支持Linux,估计时间更久。这不能适应现在的国产化开发。 预计一段时间还是需要Avalonia作为优先。当前Avalonia使

jinyuttt的专栏 4083

保姆级教程:用MATLAB搞定双目相机标定,从导入图片到参数解读全流程

本文提供了一份详细的MATLAB双目相机标定全流程指南,涵盖从图片准备到参数解读的每个环节。重点讲解了棋盘格选择、拍摄技巧、MATLAB工具箱设置及参数优化,帮助读者避免常见错误并提升标定精度。特别适合机器人导航、三维重建等领域的开发者。

weixin_33737134的博客 428

网络爬虫基本原理(二)

四、更新策略     互联网是实时变化的,具有很强的动态性。网页更新策略主要是决定何时更新之前已经下载过的页面。常见的更新策略又以下三种:     1.历史参考策略     顾名思义,根据页面以往的历史更新数据,预测该页面未来何时会发生变化。一般来说,是通过泊松过程进行建模进行预测。     2.用户体验策略     尽管搜索引擎针对于某个查询条件能够返回数量巨大的结果,但是用户往往...

wawlian说 318

uniapp [全端兼容] - 实现接入使用天地图及卫星视图切换功能,在国家天地图上自由切换地图显示类型(卫星视图/地形视图/卫星混合/地形混合/普通视图)天地图切换视图显示改成卫星风格,切换地图图层

uni-app,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,天地图,视图,卫星,地图类型切换,uniAPP天地图,改成卫星视角,在线地图切换,来回切换卫星图,天地图如何实现来回切换卫星图,地形图,卫星视图,VUE3引入天地图卫星版,详细教程示例源码代码,天地图切换卫星用什么api,卫星视角API方法,vue3卫星天地图,能改地图的显示方式,vue3中使用天地图自定义样式切换地图图层,切换报错,加载出错,卫星图太卡,地图图层更换,vue3安装集成天地图详细示例源

🏆 前端领域优质创作者 1万+

3. 爬虫的基本原理

3. 原理探究,了解爬虫的基本原理 文章目录3. 原理探究,了解爬虫的基本原理3.1 爬虫概述3.2 获取网页3.3 提取信息3.4 保存数据3.5 抓取什么样的数据3. 6 JavaScript渲染页面 3.1 爬虫概述 ​ 简单地说,爬虫就是获取网页并提取保存信息的自动化程序 3.2 获取网页 ​ 获取网页的源代码,向网站的服务器发送一个请求,返回的响应体便是网页源代码 ​ 借助urllib、...

菜鸡养成手册 271

YOLOv11-seg改进系列 | 引入CVPR2022 MetaFormer,零参数池化Token混合+StarReLU MLP,精度涨不掉速

本文提出了一种改进YOLOv11分割任务的C3k2_PoolingFormer模块,通过引入MetaFormer架构和Pooling Token Mixer,在保持模型轻量化的同时增强全局感受野建模能力。核心创新包括:1)使用零参数的AvgPool3×3差值作为Token Mixer,实现高效邻域信息聚合和局部对比增强;2)采用StarReLU MLP替代传统激活函数,提升非线性表达能力。改进后模型仅增加6.1%参数量,却能显著提升分割精度,特别适用于需要长程依赖建模的实例分割任务。该设计为轻量级视觉模型提

qq_44224801的博客 431

(12)单相降压自耦变压器的等效电路和仿真模型

本文根据电机学基本原理,从单相双绕组变压器的接线方式出发,建立基本方程并导出T型等效电路。然后将双绕组变压器演变成一种降压自耦变压器,详细地建立起单相降压自耦变压器的数学模型以及导出相对应的等效电路,最后用Matlab/simulink的simscape元件库元件建立了基于单相自耦变压器的T型等效电路的仿真模型。用实例仿真验证了本文工作的正确性。

weixin_45670943的博客 1046

理解爬虫原理

一、简单说明爬虫原理 通俗来讲,网络爬虫是指通过程序模拟浏览器站点的行为,向网站发起请求,把站点返回的HTML代码、JSON数据、二进制数据(图片、视频等)抓取到本地,再通过程序提取分析数据,用以代替繁琐、低效和通过复制粘贴等手段来获取数据的技术。 二、理解爬虫开发过程 1、简要说明浏览器工作原理 用户在浏览器输入url,浏览器向web服务器发送request请求,服务器收到请求并处理后向浏览器...

weixin_30745641的博客 155

杰理 JL701N/JL703N USB MIDI 使用教程

摘要:本教程介绍如何在杰理JL701N/JL703N音箱的可视化SDK中配置USB MIDI功能。主要步骤包括:1)启用PC模式;2)修改SDK宏定义启用USB MIDI;3)实现MIDI数据接收处理逻辑;4)调用接口发送MIDI数据;5)使用MIDI-OX测试功能。针对低版本SDK可能出现的设备识别问题,提供了在midi.c文件中添加特定代码行的解决方案。使用前需确保SDK版本达标,并注意备份原始文件。

qq_42014563的博客 1263

网络爬虫的基本原理及抓取静态网页详解

网络爬虫(又称为网页蜘蛛,网络机器人)是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。网络爬虫可以从一个或若干初始网页的URL开始,通过抓取网页上的链接地址,自动地访问网页、提取数据,实现对整个网站内容的爬取。网络爬虫主要用于搜索引擎、数据挖掘、信息提取、网页抓取等应用,是网络数据采集的重要工具。网络爬虫的技术实现涉及到多个领域的知识,包括计算机网络、数据挖掘、自然语言处理等。网络爬虫的分类有多种,根据其爬取范围可以分为通用爬虫和聚焦爬虫。

2303_76177437的博客 3377

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

网络爬虫基本原理和实现方式

网络爬虫是一种自动化程序,模拟用户访问网页,并从网页中提取有用数据(如新闻标题、商品价格、评论等)。比如你访问淘宝网页、查看价格 → 爬虫可以代替你自动完成这些工作,并把价格存进文件或数据库。发起请求(requests)↓接收 HTML 源码↓解析数据(BeautifulSoup / re / xpath)↓提取想要的字段(标题、价格等)↓保存结果(csv / txt / db)

王景程的博客 2577

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

网络爬虫的基本原理是什么?

不过,大家一定要注意哦,可爬取的数据必须是公开的,非盈利的,如:如果侵入人家非公开的网络,人家会通过ip定位到你,属于违法行为的哦,再或者,一些理财的网站,如果爬取数据,肯定是不可以的,如果小伙伴们不听话,非要去爬取,那任何人都是保护不了你的哦,狗头保命~~~看到这里,大家是不是发现通用爬虫简单,但是不实用,聚焦爬虫应用比较广泛,而且实用,但是实现起来难度较大,不过没事的哈,有宋宋的帮助,我们都能学会的,奥利给!期待大家学习完爬虫的全部课程之后,能有一个不错的收获~~~,Good Luck!

千锋教育 3270

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

网络爬虫基本原理介绍

网络爬虫科普,包括概念、基本原理、工作流程和开发语言推荐等

qq429304819的博客 1731

网络爬虫的基本原理

1、网络爬虫原理 网络爬虫指按照一定的规则(模拟人工登录网页的方式),自动抓取网络上的程序。简单的说,就是讲你上网所看到页面上的内容获取下来,并进行存储。网络爬虫的爬行策略分为深度优先和广度优先。如下图是深度优先的一种遍历方式是A到B到D 到E 到C到 F(ABDECF)而宽度优先的遍历方式ABCDEF 。 2、写网络爬虫的原因 我将为什么写网络爬虫的原因总结为3点,分别是: ...

607

网络爬虫基本原理详解

网络爬虫,又称网络蜘蛛或网络机器人,是一种按照特定规则自动浏览互联网并提取信息的程序。这些程序被广泛用于搜索引擎、数据挖掘、信息监测等应用领域。网络爬虫通过模拟人类用户在浏览器中的行为,访问网页、提取内容,然后将这些数据用于各种用途。

技术探秘者的博客 3484

python网络爬虫(一)——网络爬虫基本原理

通过request库已经抓取到网页源码,接下来要从源码中找到并提取数据。Beautiful Soup是python的一个库,其主要功能是从网页中抓取数据。Beautiful Soup目前已经被移植到bs4库中,也就是说在导入Beautiful Soup时需要先安装bs4。安装好bs4库后,还需要安装lxml库。如果我们不安装lxml库,就会使用python默认的解析器。

图像学习之旅 1847

一.网络爬虫概述,分类,基本原理及在Windows下相关环境搭建

一.网络爬虫概述   网络爬虫可以按照指定的规则(网络爬虫的算法,编写的程序)自动抓取网络中的信息。大多主流语言都可以都可以进行网络爬虫,python相比较其他语言更加便捷、第三方库更加丰富。所以大多数爬虫任务都是用python完成的。 二.网络爬虫的分类   网络爬虫根据实现的技术和结构可以分为以下四类:通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、深层网络爬虫。 1.通用网络爬虫   通用网络爬虫又叫全网爬虫,主要由URL集合、URL队列、页面爬行模块、页面分析模块、页面数据库、链接过滤模块等模块构成。主

qq_51431768的博客 2281

网络爬虫基本原理

【网络爬虫基本原理】其实,刚开始学爬虫是挺痛苦的,一是爬虫需要的知识挺杂的,网页方面的,还有网络方面,数据库方面都需要,然后市面上目前而言的爬虫书籍很多都是用Python2来写的。之前看了《Python网络数据采集》这本书,但是发现可能是翻译过来的书,有些地方不是很好使用,所以买了一本崔庆才老师的《Python3网络爬虫开发实战》并且配合他在网上的教学视频一起使用,了解崔庆才老师之后,发现他真的很...

搬砖者也 710

网络爬虫基本原理的介绍

网络爬虫,也称为网络蜘蛛,是互联网浏览中的一种自动化程序,主要用于抓取并下载互联网上的网页信息。对于大部分搜索引擎,网络爬虫是其核心组件,用于构建和更新网页的索引。这篇博客将详细介绍网络爬虫的基本原理。网络爬虫的工作原理可以概括为三个步骤:发送请求、解析响应和存储数据。

得塔云的博客 1306
上一篇: Web网页基础
下一篇: 在 Ubuntu v.14_04 x64 上安装 TeamViewer v.15
陈其淼
博客等级 码龄7年 2粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值