Day28.爬虫的基本原理

网络爬虫知识 day01 一、网络爬虫概述 1.1网络爬虫介绍 在大数据时代,信息的采集是一项重要的工作,而互联网中的数据是海量的,如果单纯靠人力进行信息采集,不仅低效繁琐,搜集的成本也会提高。如何自动高效地获取互联网中我们感兴趣的信息并为我们所用是一个重要的问题,而爬虫技术就是为了解决这些问题而生的。 网络爬虫(Web crawler)也叫做网络机器人,可以代替人们自动地在互联网中进行数据信息的采集与整理。它是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,可以自动采集所有其能够访问... 阅读详情

爬虫的基本原理



前言

本文主要是介绍一下爬虫的基本原理,以基础为主。


一. 基本原理

1.1 什么是爬虫

比较官方的解释为:网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取网站信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

个人的理解比较简洁:爬虫就是请求网站并提取数据的自动化程序。其中主要的三个点就是请求,提取,自动化;定义是一个程序。

1.2 爬虫的基本流程

  1. 发起请求:通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers等信息,等待服务器响应。

  2. 解析内容:得到的内容可能是HTML,可以用正则表达式,网页解析库进行解析。可能是Json,可以直接转为Json对象解析,可能是二进制数据,可以做保存或者进一步处理。

  3. 获取响应内容:如果服务器能正常响应(响应码为200),会得到一个Response,Response的内容便是索要获取的页面内容,类型可能有HTML,Json字符串,二进制数据(如图片视频)等类型。

  4. 保存数据:保存形式多样,可以保存文本,也可以保存至数据库,或者保存至特定格式的文件。

1.3 什么是 Request 和 Response?

简单的讲:就是我们向服务器发送Request,然后服务器通过一系列的内部操作后向我们发送Response。细分起来,也就是分为三大步骤:

  1. 浏览器发送消息给该⽹址所在的服务器,这个过程叫做 HTTP Request。
  2. 服务器收到浏览器发送的消息后,能够根据浏览器发送消息的内容,做相应处理,然后把消息回传给浏览器。这个过程叫做 HTTP Response。
  3. 浏览器收到服务器的 Response 信息后,会对信息进⾏相应处理,然后展示。

这就是我们平时上网,在每次点击的过程中浏览器与服务器之间的一个过程。

1.3.1 Request 中包含什么?

  1. 请求方式:主要有GET,POST两种类型;另外还有HEAD,PUT,DELETE,OPTIONS等。
  2. 请求头:包含请求时的头部信息,如User-Agent,Host,Cookies等信息。
  3. 请求URL:URL全程统一资源定位符,入一个网页文档,一张图片,一个视频等都可以用URL唯一来确定。
  4. 请求体:请求时额外携带的数据如表单提交时的表单数据。

1.3.2 Response 中包含什么?

  1. 响应状态:有多种响应状态,如200代表成功,301跳转,404找不到页面,502服务器错误。
  2. 响应头:如内容类型,内容长度,服务器信息,设定Cookie等等。
  3. 响应体:最主要的部分,包含了请求资源的内容,如网页的HTML,图片二进制数据等。

二. 数据抓取

主要有这些类型数据:

  1. 网页文本: HTML文档,Json格式文本等。
  2. 图片:获取到的是二进制文件,保存为图片格式。
  3. 视频:同为二进制文件,保存为视频格式即可。
  4. 其他:只要是能请求到的,都能获取。

2.1 解析网页的方法

  1. 直接处理
  2. Json解析
  3. 正则表达式
  4. BeautifulSoup
  5. PyQuery
  6. XPath

2.2 为何我们抓到的和浏览器看到的不一样?

其实现在随着前端(网页)技术的发展,很多网站都会或多或少的有反爬虫等保护机制,而JavaScript(JS)渲染就是一种常见的技术。那如何解决JS渲染的问题呢?

  1. 分析Ajax请求
  2. Selenium / WebDriver
  3. Splash
  4. PyV8, Ghost.py

2.3 可以怎样保存数据?

  1. 文本:纯文本,Json,Xml等。
  2. 关系型数据库:如MySQL,Oracle,SQLServer等具有结构化结构形式存储。
  3. 非关系型数据库:如MongoDB,Redis等Key-Value形式存储。
  4. 二进制文件:如图片,视频,音频等直接保存成特定格式即可。

总结

今天主要是简单的学习了一下爬虫的基本原理,浏览器在使用时的底层过程,这样也有利于理解后面的爬虫操作。其次就是爬虫的一个基本流程,包括发送请求,网站接受并做出反应,获得服务器的反馈,并对这些反馈进行解析,而一些有用的数据如何进行保存,而且对不同的数据有着不同的保存方式。

溜了遛了,脑壳疼。Loading(28/100)。。。

Python构建LPL转会信息追踪器:网络爬虫与NLP实战 网络爬虫是自动化获取互联网数据的关键技术,通过模拟浏览器请求和解析HTML结构,能够高效地从多个信息源采集内容。其核心原理在于遵循HTTP协议与网页DOM结构,结合反爬策略实现稳定抓取。在数据爆炸的时代,这项技术为信息聚合与去噪提供了工程化解决方案,广泛应用于舆情监控、市场分析和资讯追踪等场景。自然语言处理(NLP)基础技术如中文分词和实体识别,能够从非结构化文本中提取关键实体与关系,实现信息结构化。本文以LPL转会信息为具体应用场景,演示如何将网络爬虫与NLP技术结合,构建一个能够自动追踪、提取和分析电竞 阅读详情

相关推荐

三极管共集电极放大电路详解:射极跟随器的原理、计算与应用

三极管放大电路是模拟电子技术的基石,常见组态包括共发射极、共基极和共集电极。其中共集电极电路因输入电阻大、输出电阻小、电压增益接近1的特性,常被用作射极跟随器,在信号缓冲、级间隔离和低阻抗负载驱动等场景中发挥关键作用。其核心价值并非电压放大,而是完成阻抗变换,将高内阻信号源转换为低内阻输出,同时保持信号幅值基本不变。理解其静态工作点计算与动态参数推导(如电压增益、输入输出电阻)是设计实用电路的前提。本文结合12V电源下的具体设计实例和仿真验证,梳理了从电路识别、参数计算到工程实践的完整流程,并指出常见设计误

weixin_29193259的博客 367

网络爬虫-Python

一、网络爬虫:按照指定的规则(网络爬虫的算法)自动浏览或抓取网络中的信息,通过Python可以比较轻松的编写爬虫程序或者是脚本。 二、网络爬虫分类 网络爬虫按照实现的技术和结构可以分为以下几种类型: (1)通用网络爬虫(Scalable Web Crawler),通用网络爬虫的爬行范围和数量巨大,正是由于其爬取的数据是海量数据,所以对于爬行速度和存储空间的要求较高,这种网络爬虫主要应用于大...

gangganggood的专栏 818

5G核心网Framed Routing功能解析:基于PFCP的帧路由机制与多终端互联实践

5G核心网Framed Routing功能解析:基于PFCP的帧路由机制与多终端互联实践

大家好,我是码农老gou,一名专注于编程技术的程序员。在这个博客中,我将与大家分享我在工作和学习中的经验、见解以及一些实用的技术干货。 1466

Python爬虫day1

网络爬虫 简介: 网络爬虫(web crawler),以前经常称之为网络蜘蛛(spider),是按照一定的规则自动浏览万维网并获取信息的机器人程序(或脚本),曾经被广泛的应用于互联网搜索引擎。使用过互联网和浏览器的人都知道,网页中除了供用户阅读的文字信息之外,还包含一些超链接。网络爬虫系统正是通过网页中的超链接信息不断获得网络上的其它页面。正因如此,网络数据采集的过程就像一个爬虫或者蜘蛛在网络...

瞿凯Kai的博客 795

虚拟零售智能客服架构设计:如何用大模型实现多轮对话与精准推荐?

想象一下,当你在一个电商平台购物时,遇到了一个能像你的专属导购一样,不仅能听懂你模糊的需求(“我想买一件适合夏天去海边玩,又能兼顾日常通勤的裙子”),还能记得你之前提到的尺码偏好和预算,甚至在你犹豫时,主动推荐几款符合你风格且正好有促销活动的商品——这不再是科幻电影中的场景,而是基于大语言模型(LLM)技术的新一代虚拟零售智能客服能够提供的体验。这一层是我们架构设计的重点,会在后续章节详细展开。如基于CRF、RNN的模型,或基于规则的状态更新,通常需要大量标注的对话状态数据,且对新领域、新槽位的适应性差。

Java大师兄的博客 1589

手把手教你解决CentOS sshd启动报错:从权限问题到目录缺失的全套解决方案

本文提供了一套完整的CentOS SSH服务启动故障排查与修复方案。针对sshd启动报错,从systemd日志分析、sshd -t配置测试入手,详细解决了私钥文件权限过宽(如0644错误)和权限分离目录缺失等典型问题,并附带了扩展排查清单,帮助运维人员系统性地定位和解决连接故障。

weixin_29248611的博客 152

Python爬虫学习笔记_DAY_28_Python爬虫之scrapy框架的工作原理与安装使用介绍【Python爬虫】

p.s.高产量博主,点个关注????不迷路! 目录 I.scrapy框架的工作原理介绍 II.scrapy框架的安装 III.用scrapy框架搭建并运行第一个项目 I.scrapy框架的工作原理介绍 首先介绍一下scrapy框架是什么: Scrapy是适用于Python的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试 简单的说,scrapy给我们提供了更加简便、高效的爬虫体验,但与此同时

跳探戈的小龙虾的博客 1540

高通camera驱动 camx read xml 和 probe 流程 和 sensor I2C读写的波形图 (三)

Camx 刚接触的时候对于这个xml 一脸懵逼,实际上和mm-camera差不多就是以xml node节点的方式标准化了driver相关的code,exposure 和 gain的逻辑实现还是在同级目录的cpp中,并且将 xml 的解析工作放在了 out/target/<product>/gen/STATIC_LIBERARIES/libcamxgenerated_intermediates/generated/ 中主要是包含了: g_chromatix : tuning 相关xml的解析co

shangbolei的博客 1万+

day01 爬虫基本原理以及requests请求库

一、爬虫基本原理 1.什么是爬虫 爬虫就是爬取数据 2.什么是互联网 有一堆网络设备,把一台台的计算机互联到一起称为互联网 3.互联网建立的目的 数据的传递与数据的共享 4.什么是数据 例如: 电商平台的商品信息 链家,自如租房平台的房源信息 ......

diecheng5626的博客 333

单细胞空间转录组分析流程学习python版(三)

空转python版学习

zfyyzhys的博客 2085

Claude Code 分布式并行开发最佳实践:1中枢+10Worker跨多Git仓库全流程落地

本文介绍了一套基于Claude Code和Git Worktree的分布式并行开发方案,解决多仓库、微服务开发中的核心痛点。方案采用"1个决策中枢+10个并行Worker"架构,中枢负责任务拆解和调度,每个Worker绑定独立仓库实现完全隔离开发。关键优势包括:任务并行效率提升10倍、跨仓库依赖自动编排、版本统一管理、零第三方依赖。文章详细提供了环境准备、架构设计、中枢搭建和初始化脚本等全流程落地指南,特别适合多仓库协同的全栈开发场景。

AI天才研究院 244

python网络爬虫基础day02

  2019.5.15,今天继续跟着波波老师学习爬虫开发。主要学了数据解析,总结今天学的知识: 聚焦爬虫:爬取页面中指定的页面内容。 -编码流程: - 指定urL发起请求 - 获取响应数据 - 数据解析 - 持久化存储数据解析分类: - 正则 - bs4 - xpath(重点)数据解析原理概述: - 解析的局部...

weixin_30410999的博客 259

YOLOv8改进:全网原创首发 | 新颖的多尺度卷积注意力(MSCA),即插即用,助力小目标检测 | NeurIPS2022

多尺度卷积注意力(MSCA),有效地提取上下文信息;1)作为注意力MSCA使用;

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 3844

python网络爬虫进阶day01

  2019.5.23,今天学习了selenium+chromedriver获取动态数据: selenium相当于是一个机器人一样,可以模拟人的行为,例如:点击,填充数据,翻页等。chromedriver是驱动Chrome浏览器的一个驱动程序。必须通过chromedriver才能得到一个driver,爬虫才能模拟人的行为。 1 # Author:K 2 from seleni...

weixin_30346033的博客 288

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

python爬虫 pdf 尹成_清华学霸尹成.python.爬虫教程

资源内容:清华学霸尹成.python.爬虫教程|____清华学霸.尹成大神.day9.zip|____清华学霸.尹成大神.day8.zip|____清华学霸.尹成大神.day7.zip|____清华学霸.尹成大神.day6.zip|____清华学霸.尹成大神.day51.zip|____清华学霸.尹成大神.day50.zip|____清华学霸.尹成大神.day5.zip|____清华学霸.尹成大神...

weixin_39965102的博客 192

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

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

python网络爬虫进阶day02-12306抢票

  2019.5.25,今天用selenium+chromedriver做了一个12306抢票小爬虫,总共100+行代码,写的真费劲,看来还是没学到家,话不多说,首先看一下README: 12306抢票功能: 通过手动登录,手动填写出发地,目的地,出发日期,然后自动完成抢票程序流程: - 1、首先进入登录界面(logging_page),然后等待用户登录。 - 2、在登录...

weixin_30319153的博客 270

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

视频教程-清华-尹成老师-Python爬虫day28-Python

清华-尹成老师-Python爬虫day28 毕业于清华大学,曾担任Googl...

weixin_32003681的博客 160

精通python网络爬虫之自动爬取网页的爬虫 代码记录

items的编写 1 # -*- coding: utf-8 -*- 2 3 # Define here the models for your scraped items 4 # 5 # See documentation in: 6 # https://doc.scrapy.org/en/latest/topics/items.html 7 8 im...

weixin_30697239的博客 162

Python实训day06pm【网络爬虫(爬取接口)-爬取图片与数据】

Python实训

upward 876

半树的爬虫打开Day1

爬虫 1.基础知识 1.1网页基础 网页主要有HTTP+CSS+JavaScript组成,HTML 是用来搭建整个网页的骨架 CSS 用于美化网页,包括颜色,每个模块的大小、位置(居中等格式设置)等,支持嵌套选则,各个选择器之间加上空格分隔开便可以代表嵌套关系。 JavaScript 是用来让整个网页“动起来”,这个动起来有两层意思,一层是网页的数据动态交互,还有一层是真正的动,比如我们都见过一些...

weixin_44916338的博客 198

Day 45:【99天精通Python】进阶篇总结与展望 - 站在巨人的肩膀上

摘要:本文总结了Python进阶篇24天的学习内容,涵盖编程核心内功、网络爬虫、数据存储和工程化四大板块。学习者已掌握正则表达式、并发编程、网络通信等关键技能,并能实现自动化办公和打包发布。文章复盘了常见痛点及解决方案,并预告了实战篇将重点攻克的三大领域:数据分析、Web开发和爬虫进阶。建议学习者多实践、查文档并尝试组合知识创造实用工具。进阶篇的完成标志着Python技能从基础到实战的重要跨越。

weixin_52694742的博客 632

第五周——爬虫入门 Day4 7.28

第五周——爬虫入门 Day4 7.28

FancySYZ的博客 215

自学python Day3-python爬虫2 - 2018.5.1

上一次我自学爬虫的时候, 写了一个简陋的勉强能运行的爬虫alpha. alpha版有很多问题. 比如一个网站上不了, 爬虫却一直在等待连接返回response, 不知道超时跳过; 或者有的网站专门拦截爬虫程序, 我们的爬虫也不会伪装自己成为浏览器正规部队; 并且抓取的内容没有保存到本地, 没有什么作用. 这次我们一个个解决这些小问题.Python 3开发网络爬虫(三): 伪装浏览器君一、添加超时跳...

deo_ares的博客 610
上一篇: Day27. 爬虫案例二:链家楼盘
下一篇: Day29.爬虫基础之Urllib
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值