【爬虫基础】第二部分 爬虫基础理论 P1/3

上节内容回顾:【爬虫基础】第一部分 网络通讯 P1/3-CSDN博客

【爬虫基础】第一部分 网络通讯-Socket套接字 P2/3-CSDN博客

【爬虫基础】第一部分 网络通讯-编程 P3/3-CSDN博客

爬虫相关文档,希望互相学习,共同进步

风123456789~-CSDN博客


前言

1.知识点碎片化:每个网站实现的技术相似但是有区别,要求我们根据不同的网站使用不同的应对手段。主要是常用的一些网站爬取技术。

2.学习难度:入门比web简单,但后期难度要比web难,在于爬虫工程师与网站开发及运维人员的对抗。比如你写了爬虫但是被网站运维人员发现后添加反爬,那么就要解决反爬。即平台更新换代,爬虫策略需要实时更新。

3.学习特点:以摸个网站爬虫为讲解对象,即一个技术点的案例。

4.后续发展:要求掌握的东西多,工作中根据工作需要涉及到更多没有接触的知识。

5.法律层面:爬虫相关工作属于灰色地带,目前国内现行法律对于爬虫相关评判还没有明确制度。

6.建议:好记性不如烂笔头,建议多找网站进行爬取联系,同时做好笔记。

1.概述

爬虫通常会遵循一定的规则和算法,以确保能够高效地遍历互联网并收集到所需的数据。

本节章节:

第一节 爬虫理论原理 (本文)

第二节 http协议

第三节 chrome浏览器抓包说明

2.爬虫理论原理

知识点:

1.爬虫的概念

2.爬虫的作用

3.爬虫的分类

4.爬虫的流程

2.1 爬虫的概念

爬虫 就是自动抓取互联网信息的程序。

‌爬虫(Web Crawler)是一种按照一定规则从互联网上抓取信息的程序。‌它与用户正常访问信息的区别在于,用户是缓慢、少量地获取信息,而爬虫则是大量地获取信息。爬虫通过模拟浏览器请求网站的行为,获取网页的HTML代码、JSON数据或二进制数据(如图片、视频、音频等),并将其存储或进行进一步处理。‌

再通俗讲,如果说互联网是一张大的蜘蛛网,数据便是存放于蜘蛛网的各个节点,而爬虫就是一只小蜘蛛,沿着网络抓取自己的猎物(数据)爬虫指的是:向网站发起请求,获取资源后分析并提取有用数据的程序。从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据(图片、视频) 爬到本地,进而提取自己需要的数据,存放起来使用。

2.2 爬虫的作用

为什么要使用爬虫?

大数据时代,要进行数据分析,首先要有数据源,而学习爬虫,可以让我们获取更多的数据源,并且这些数据源可以按我们的目的进行采集,去掉很多无关数据。

在进行大数据分析或者进行数据挖掘的时候,数据源可以从某些提供数据统计的网站获得,也可以从某些文献或内部资料中获得,但是这些获得数据的方式,有时很难满足我们对数据的需求,而手动从互联网中去寻找这些数据,则耗费的精力过大。

此时就可以利用爬虫技术,自动地从互联网中获取我们感兴趣的数据内容,并将这些数据内容爬取回来,作为我们的数据源,从而进行更深层次的数据分析,并获得更多有价值的信息。
爬虫的作用:

1)数据采集

爬虫可以快速收集大量数据,常用于市场调研、竞争分析等。

2)数据统计

通过分析大量数据,可以发现一些人为难以察觉的模式和趋势。

3)数据的功能性集成(如:刷流量与秒杀活动 ‌**)**

爬虫可以模拟大量用户访问,增加网站的访问量,甚至参与秒杀活动。

2.3 爬虫的分类

爬虫的类型

  1. 通用爬虫 ‌:用于收集互联网上的大量数据,例如搜索引擎的爬虫。它们遍历整个网页链接,并按照规则提取相关信息。
  2. 聚焦爬虫‌:针对特定主题或领域进行数据收集。它们只访问和提取与预设主题相关的网页数据。对某个单一的平台,单独开发的爬虫 采集抖音的爬虫程序
  3. 增量式爬虫‌:主要用于定期更新数据,而不是每次都全面爬取。它们记录上一次爬取的时间戳,只访问和提取自上次爬取以来更新过的网页数据。
  4. 深度爬虫‌:专门用于访问和收集隐藏在互联网深层网页中的信息。这些网页通常不被搜索引擎索引,需要特殊的技术和算法才能访问和提取数据。
  5. 垂直爬虫‌:专注于特定网站或特定类型网页的数据收集,例如新闻爬虫、电商产品爬虫等。
  6. 社交媒体爬虫‌:用于在各种社交媒体平台上抓取用户的信息、帖子、评论等数据,常用于情感分析、舆情监测等应用。

1)通用爬虫

类似百度、谷歌这样的爬虫,抓取对象是整个互联网,对于网页没有固定的抽取规则。 对于所有网页都是一套通用的处理方法。

需要采集网站(平台):特别多

收集的信息非常有限

收集网页的标题

采集算法

2)垂直爬虫

这类爬虫主要针对一些特定对象、网站,有一台指定的爬取路径、数据抽取规则。

比如今日头条,它的目标网站就是所有的新闻类网站。

比如Etao比价、网易的慧慧购物助手,他的目标网站就是 淘宝、京东等等电商网站。
通用爬虫和垂直爬虫显著的区别:

A.抓取范围,通用爬虫的抓取范围要比垂直爬虫大得多,一个是整个互联网,一个是指定的网站。

B.爬取路线,一个通用爬虫要不按照深度爬取、要不是按广度爬取。 而垂直爬虫则可能是按照指定路线爬取。

C.数据处理,通用爬虫一般就是分词、索引到数据库。 而垂直爬虫则通过特定的规则来抽取更加精细的数据 。

2.4 爬虫的流程原理

用户获取网络数据的方式:

方式1:浏览器提交请求--->下载网页代码--->解析成页面

方式2:模拟浏览器发送请求(获取网页代码)->提取有用的数据->存放于数据库或文件中

爬虫要做的就是方式2。
爬虫的流程步骤: 1.准备数据(网站地址)

2.发送请求,获取响应

3.解析响应,数据提取

4.保存数据

1)准备数据(网站地址)

2)发起请求,获取响应

爬虫首先会向目标网站发送HTTP请求,以获取网页的HTML源码。

Request包含:请求头、请求体等

Request模块缺陷:不能执行JS 和CSS 代码
如果服务器能正常响应,则会得到一个Response

Response包含:html,json,图片,视频等

3)解析响应,数据提取

获取到HTML源码后,爬虫会使用解析器对网页进行解析,提取出所需的信息。

解析html数据:正则表达式(RE模块),第三方解析库如Beautifulsoup,pyquery等

解析json数据:json模块

解析二进制数据:以wb的方式写入文件

4)保存数据

提取出的信息会被存储到本地文件、数据库或其他存储介质中,以便后续的分析和处理

数据库([MySQL],Mongdb、Redis)

文件

注意:法律和道德问题

在使用爬虫时,需要遵守一定的法律和道德准则,尊重网站的隐私政策和使用条款,确保合法和负责任地使用爬虫技术。

今天先到这里吧~~

预知后事如何,且听下回分解~ ok


项目管理--相关知识

项目管理-项目绩效域1/2-CSDN博客

项目管理-项目绩效域1/2_八大绩效域和十大管理有什么联系-CSDN博客

项目管理-项目绩效域2/2_绩效域 团不策划-CSDN博客

高项-案例分析万能答案(作业分享)-CSDN博客

项目管理-计算题公式【复习】_项目管理进度计算题公式:乐观-CSDN博客

项目管理-配置管理与变更-CSDN博客

项目管理-项目管理科学基础-CSDN博客

项目管理-高级项目管理-CSDN博客

项目管理-相关知识(组织通用治理、组织通用管理、法律法规与标准规范)-CSDN博客


Oracle其他文档,希望互相学习,共同进步

Oracle-找回误删的表数据(LogMiner 挖掘日志)_oracle日志挖掘恢复数据-CSDN博客

oracle 跟踪文件--审计日志_oracle审计日志-CSDN博客

ORA-12899报错,遇到数据表某字段长度奇怪现象:"Oracle字符型,长度50"但length查却没有50_varchar(50) oracle 超出截断-CSDN博客

EXP-00091: Exporting questionable statistics.解决方案-CSDN博客

Oracle 更换监听端口-CSDN博客

相关推荐
猿毕设8 分钟前
【FL0100】基于SSM微信小程序的走失人员的报备平台
java·spring boot·后端·python·微信小程序·小程序
猿毕设14 分钟前
【FL0091】基于SSM和微信小程序的社区二手物品交易小程序
java·spring boot·后端·python·微信小程序·小程序
攻城狮_Dream31 分钟前
基于 Python 的项目管理系统开发
android·数据库·python
崧小果38 分钟前
Mobaxterm服务器常用命令(持续更新)
开发语言·python·深度学习
java1234_小锋1 小时前
一周学会Flask3 Python Web开发-Jinja2模板基本使用
python·flask·flask3
Jelena157795857921 小时前
使用Python爬虫获取京东商品评论API接口的详细指南
开发语言·爬虫·python
java1234_小锋1 小时前
一周学会Flask3 Python Web开发-Jinja2模版中加载静态文件
python·flask·flask3
起个破名想半天了2 小时前
计算机视觉(opencv-python)入门之常见图像处理基本操作(待补充)
python·opencv·计算机视觉·图像处理基本操作
老胖闲聊2 小时前
Python在实际工作中的运用-通用格式CSV文件自动转换XLSX
python·excel
火云牌神2 小时前
本地大模型编程实战(22)用langchain实现基于SQL数据构建问答系统(1)
python·sql·langchain·llama·qwen2.5