【Python爬虫基础篇】--1.基础概念

目录

1.爬虫--定义

2.爬虫--组成

3.爬虫--URL


1.爬虫--定义

网络爬虫,是一种按照一定规则,自动抓取互联网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。例如:传统的通用搜索引擎AltaVista,Yahoo!和Google等,作为一个辅助人们检索信息的工具也存在着一定的局限性,通用搜索引擎的目标是尽可能大的网络覆盖率,返回的结果包含大量用户不关心的网页,为了解决上述问题,定向抓取相关网页资源的爬虫应运而生。

由于互联网数据的多样性和资源的有限性,根据用户需求定向抓取网页并分析,已成为主流的爬取策略。只要你能通过浏览器访问的数据都可以通过爬虫获取,爬虫的本质是模拟浏览器打开网页,获取网页中我们想要的那部分数据。

2.爬虫--组成

模块 核心功能 常用工具/技术 关键优化点
调度器 管理URL抓取优先级与任务队列 Scrapy调度器、Redis队列、RabbitMQ 去重策略、分布式任务分配
下载器 发送HTTP请求获取网页内容 requests、aiohttp、Selenium 代理轮换、请求头伪装、异步并发
解析器 提取数据(文本/API响应) BeautifulSoup、XPath、正则表达式 动态渲染、数据清洗与结构化
数据存储 持久化存储抓取结果 MySQL/MongoDB、CSV/JSON文件、Elasticsearch 批量插入、索引优化
反爬策略 绕过反爬机制(验证码、频率限制) 代理IP池、OCR打码、Cookies模拟登录 请求延迟随机化、User-Agent轮换
监控与日志 记录运行状态与异常报警 logging模块、Prometheus+Grafana 错误重试、性能指标可视化

3.爬虫--URL

术语 定义 核心功能 示例
网页(Web Page) 由HTML/CSS/JavaScript编写的单个文档,通过浏览器渲染显示内容。 展示文本、图像、视频等具体信息。 https://example.com/about.html
网站(Website) 由多个相互链接的网页组成的集合,共享同一域名和主题。 提供完整服务或信息体系(如电商、博客)。 https://example.com (含主页、子页面)
网络服务器(Web Server) 存储网站文件(网页、图片等)的硬件/软件,响应客户端请求并返回数据。 托管网站内容,处理HTTP请求(如Apache、Nginx)。 阿里云ECS、AWS EC2实例
搜索引擎(Search Engine) 通过爬虫索引网页,提供关键词检索服务的系统。 快速定位全网公开资源(如网页、图片)。 Google、百度、Bing

URL:

早在1989年,网络发明人蒂姆·伯纳斯 - 李(Tim Berners-Lee)就提出了网站的三大支柱:

1)URL ,跟踪Web文档的地址系统

2)HTTP,一个传输协议,以便在给定URL时查找文档

3)HTML, 允许嵌入超链接的文档格式

Web的最初目的是提供一种简单的方式来访问,阅读和浏览文本文档。从那时起,网络已经发展到提供图像,视频和二进制数据的访问,但是这些改进几乎没有改变三大支柱。

在Web之前,很难访问文档并从一个文档跳转到另一个文档。WWW(World Wide Web,万维网)简称为3W,使用统一资源定位符(URL)来标志WWW上的各种文档。

完整的工作流程如下∶

  1. Web用户使用浏览器(指定URL)与Web服务器建立连接,并发送浏览请求。
  2. Web服务器把URL转换为文件路径,并返回信息给 Web浏览器。
  3. 通信完成,关闭连接。

HTTP:超文本传送协议(HTTP)是在客户程序(如浏览器)与WWW服务器程序之间进行交互所使用的协议。HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接,它使用TCP连接进行可靠传输,服务器默认监听在80端口。

URL:代表统一资源定位器。URL 只不过是 Web 上给定的唯一资源的地址。理论上,每个有效的 URL 都指向一个唯一的资源。此类资源可以是 HTML 页面、CSS 文档、图像等。

组成部分 说明 **示例(以 http://www.example.com:80/path/to/myfile.html?key1=value1#anchor 为例)
协议 指定访问资源的协议(如 httphttpsftp),后跟 :// 分隔符。 http:
域名/IP 服务器的地址(如 www.example.com192.168.1.1)。 www.example.com
端口 可选,服务器监听的端口号(默认端口可省略,如 HTTP 默认 80)。 :80(可省略)
资源路径 服务器上资源的路径,包含虚拟目录和文件名。 /path/to/myfile.html
查询参数 可选,以 ? 开头,键值对形式(如 ?key1=value1&key2=value2)。 ?key1=value1
锚点 可选,以 # 开头,指向资源内的特定位置(如 HTML 锚点或视频时间戳)。 #anchor
相关推荐
救救孩子把18 分钟前
PyTorch 浮点数精度全景:从 float16/bfloat16 到 float64 及混合精度实战
人工智能·pytorch·python
意.远22 分钟前
PyTorch数据操作基础教程:从张量创建到高级运算
人工智能·pytorch·python·深度学习·机器学习
明月看潮生2 小时前
青少年编程与数学 02-016 Python数据结构与算法 29课题、自然语言处理算法
python·算法·青少年编程·自然语言处理·编程与数学
努力学习的小廉3 小时前
【C++】 —— 笔试刷题day_20
开发语言·c++
ghost1434 小时前
C#学习第17天:序列化和反序列化
开发语言·学习·c#
難釋懷4 小时前
bash的特性-bash中的引号
开发语言·chrome·bash
局外人LZ5 小时前
爬虫利器SpiderTools谷歌插件教程v1.0.0!!!web端JavaScript环境检测!!!
爬虫
Hello eveybody5 小时前
C++按位与(&)、按位或(|)和按位异或(^)
开发语言·c++
6v6-博客5 小时前
2024年网站开发语言选择指南:PHP/Java/Node.js/Python如何选型?
java·开发语言·php