python爬虫1

news2024/12/26 22:42:45

1.1 网络爬虫概述


网络爬虫(又被称为网络蜘蛛、网络机器人,在某社区中经常被称为网页追逐者),可以按照指定的规则(网络爬虫的算法)自动浏览或抓取网络中的信息,通过 Python 可以很轻松地编写爬虫程序或者是脚本。

在学习爬虫时不仅需要了解爬虫的实现过程,还需要了解一些常见的爬虫算法。在特定的情况下,还需要开发者自己制定相应的算法。

1.2 网络爬虫的分类

网络爬虫按照实现的技术和结构可以分为通用网络爬虫、聚焦网络爬虫、增量式网络爬虫。在实际的网络爬虫中,通常是这几类爬虫的组合体,下面分别介绍。

1.通用网络爬虫

通用网络爬虫又叫作全网爬虫(Scalable Web Crawler),通用网络爬虫的爬行范围和数量巨大,正是由于其爬取的数据是海量数据,所以对于爬行速度和存储空间要求较高。通用网络爬虫在爬行页面的顺序要求上相对较低,同时由于待刷新的页面太多,通常采用并行工作方式,所以需要较长时间才可以刷新一次页面。所以存在着一定的缺陷,这种网络爬虫主要应用于大型搜索引擎中,有着非常高的应用价值。通用网络爬虫主要由初始 URL 集合、URL 队列、页面爬行模块、页面分析模块、页面数据库、链接过滤模块等构成。

2.聚焦网络爬虫

聚焦网络爬虫(Focused Crawler)也叫主题网络爬虫(Topical Crawler),是指按照预先定义好的主题,有选择的进行相关网页爬取的一种爬虫。它和通用网络爬虫相比,不会将目标资源定位在整个互联网中,而是将爬取的目标网页定位在与主题相关的页面中。极大地节省了硬件和网络资源,保存的页面也由于数量少而更快了,聚焦网络爬虫主要应用在对特定信息的爬取,为某一类特定的人群提供服务。

3.增量式网络爬虫

增量式网络爬虫(Incremental Web Crawler),所谓增量式,对应着增量式更新。增量式更新指的是在更新时只更新改变的地方,而未改变的地方则不更新。所以增量式网络爬虫,在爬取网页时,只会在需要的时候爬行新产生或发生更新的页面,对于没有发生变化的页面,则不会爬取。这样可有效减少数据下载量,减小时间和空间上的耗费,但是在爬行算法上增加了一些难度。

1.3 网络爬虫的基本原理

 

(1)获取初始的 URL,该 URL 地址是用户自己制定的初始爬取的网页。

(2)爬取对应 URL 地址的网页时,获取新的 URL 地址。

(3)将新的 URL 地址放入 URL 队列。

(4)从 URL 队列中读取新的 URL,然后依据新的 URL 爬取网页,同时从新的网页中获取新的 URL 地址,重复上述的爬取过程。

(5)设置停止条件,如果没有设置停止条件,那么爬虫会一直爬取下去,直到无法获取新的 URL 地址为止。设置了停止条件后,爬虫将会在满足停止条件时停止爬取。

 

安装 Anaconda

Anaconda 是一个完全免费的大规模数据处理、预测分析和科学计算工具。该工具中不仅集成了 Python 解析器,还有很多用于数据处理和科学计算的第三方模块,其中也包含许多网络爬虫所需要使用的模块,如 requests 模块、Beautiful Soup 模块、lxml 模块等。

安装教程自己搜

了解 Web 前端

爬虫的对手就是网页,所以了解 Web 前端的知识很重要。关于 Web 前端的知识是非常广泛的,所以本章将针对与爬虫相关的知识,如什么是 HTTP 协议、HTTP 与 Web 服务器的通信过程、HTML 的基本结构、什么是 CSS 层叠样式表,以及什么是 JavaScript 动态脚本语言的 Web 相关知识进行讲解,为学习爬虫技术打好基础。

HTTP 协议

HTTP(HyperText Transfer Protocol),即超文本传输协议,是互联网上应用最为广泛的一种网络协议。HTTP 是利用 TCP 在 Web 服务器和客户端之间传输信息的协议。客户端使用 Web 浏览器发起 HTTP 请求给 Web 服务器,Web 服务器发送被请求的信息给客户端。

HTTP 与 Web 服务器

当在浏览器输入 URL 后,浏览器会先请求 DNS 服务器,获得请求站点的 IP 地址(即根据 URL 地址 www.mingrisoft.com 获取其对应的 IP 地址,如 101.201.120.85),然后发送一个 HTTP Request(请求)给拥有该 IP 的主机(,接着就会接收到服务器返回的 HTTP Response(响应),浏览器经过渲染后,以一种较好的效果呈现给用户。HTTP 基本原理如图 2.1 所示。

Web 服务器的工作原理可以概括为以下 4 个步骤。

(1)建立连接:客户端通过 TCP/IP 协议建立到服务器的 TCP 连接。

(2)请求过程:客户端向服务器发送 HTTP 协议请求包,请求服务器里的资源文档。

(3)应答过程:服务器向客户端发送 HTTP 协议应答包,如果请求的资源包含有动态语言的内容,那么服务器会调用动态语言的解释引擎负责处理「动态内容」,并将处理后得到的数据返回给客户端。由客户端解释 HTML 文档,在客户端屏幕上渲染图形结果。

图 2.1 HTTP 基本原理

(4)关闭连接:客户端与服务器断开。

 

 

HTTP 协议的常用请求方法

 

HTTP 状态码含义

 

浏览器中的请求和响应

用谷歌浏览器,查看一下请求和响应的流程。步骤如下。

(1)在谷歌浏览器中进入一个网址

(2)按 F12 键(或右击,选择「检查」选项),审查页面元素

(3)单击谷歌浏览器调试工具的 Network 选项,按 F5 键(或手动刷新页面),单击调试工具中 Name 栏目下的 网页地址查看请求与响应的信息

 

 html5语言笔记1

html5语言笔记2 

html5语言笔记3

css

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2215.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

二叉搜索树+二叉进阶oj

索引二叉搜索树1.二叉搜索树概念与性能分析2.二叉树的应用3.二叉树的实现细节4.类中函数递归调用5.二叉树实现总体代码6.二叉进阶oj7.二叉树三种遍历非递归实现二叉搜索树 1.二叉搜索树概念与性能分析 什么是二叉搜索树 二叉搜索树也被称为二叉排序树,其也可以是一…

热视觉2:使用Python和OpenCV从图像中测量温度

热视觉2:使用Python和OpenCV从图像中测量温度 这篇博客将介绍学习热/中远红外视觉的基础知识,gray8 和 gray16 图像(即最常见的热成像格式)之间的差异,学习如何使用Python和OpenCV从热图像中的每个像素点测量温度,并以不同的调色板显示结果。以及如何实时计算视频流和UV…

2022高频经典前端面试题(vue2+vue3+typescript+nodejs下篇,含答案)

vue2篇 1.vue的生命周期(重点) 2.父子组件的钩子函数顺序 页面初次渲染的时候: 父beforeCreate-> 父created -> 父beforeMount 子beforeCreate-> 子created ->子beforeMount-> 子mounted 父mounted 页面更新的时候&#xff…

大数据之Hive

文章目录前言一、数据仓库介绍(一) 数据仓库的基本概念(二)数据仓库的主要特征(三)数据仓库与数据库的区别二、Hive的概念(一)Hive的介绍(二)Hive的架构总结前…

4种方法!怎么把电脑上的音频传到苹果手机上?

案例分享 我新买了iphone13,想把macbook上下载的音乐传输一份到手机上,怎么把电脑上的音频传到苹果手机上?能否通过网络实现将电脑音乐传输到手机播放?” 很多果粉在刚拿到心爱的苹果手机后,都先把之前收藏的歌曲传到…

Grpc简介

博主在5月份已经从上一家公司辞职了,七月份已经到现在的公司了,能在整个互联网大环境都不好的前提下,还能找到工作,待遇还不错,已经很知足了。grpc是进到公司的第一个项目用到的技术,已经用了很久也总结了&…

三菱FX5U系列PLC内置高速计数器的使用方法示例

三菱FX5U系列PLC内置高速计数器的使用方法示例 三菱FX5U系列PLC内置高速计数器如何使用? 具体的使用方法可参考如下: 如下图所示,打开GX-WORKS3编程软件,在左侧的项目树中找到参数—FX5U—模块参数—高速I/O, 如下图所示,在弹出的右侧窗口中双击高速计数器—详细设置,…

没有十几年的积累,你还真写不出什么好的代码

如标题所说,我不知道大家怎么看待这句话? 拿一个正常的程序员举个例子,18开始上大学学习写代码,22岁大学毕业,一直干到30岁就需要考虑程序员的中年危机。 小编身边很多程序员都不喜欢写代码,感觉写代码没有…

C · 进阶 | 指针的进阶

啊我摔倒了..有没有人扶我起来学习.... 👱个人主页:《CGod的个人主页》\color{Darkorange}{《CGod的个人主页》}《CGod的个人主页》交个朋友叭~ 💒个人社区:《编程成神技术交流社区》\color{Darkorange}{《编程成神技术交流社区》…

数电学习(六、时序逻辑电路)(一)

文章目录引言概述特点时序电路的一般结构形式与功能描述方法时序电路分类时序电路的分析方法同步时序电路的分析方法状态转换表状态转换图(回顾)在现在的场景下看触发器的动态特性(四个时间)(举例)分析下面…

计算机毕设(附源码)JAVA-SSM佳音大学志愿填报系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

python有哪些编译器

python有哪些编译器 1、Brython把Python转换成Javascript代码。 是一个流行的Python编译器,它可以把Python转换成Javascript代码。该软件支持所有网络浏览器(包括手机网络浏览器)。 它还支持最新的Html5/CSS3标准,可以使用流行的CSS框架,如…

200、无线网桥与无线AP的带机量是多少?一篇文章搞明白

正文: 一个无线ap的带机量是多少?也有朋友提到无线网桥的带机量?这个我们之前有提到过,在了解他们的带机量的话,我们就不得不了解ap的性能指标了,那么本期我们来总结下带机量的问题。 一、选择AP前需要考虑…

用通俗易懂的大白话彻底搞明白mysql的数据类型以及mysql中的int(11),这个11到底是啥?

今天抽时间来讲一下mysql里的知识点,之前有不少人问过我,mysql中的int(11),这个11到底是啥意思?是11位的意思吗?你是否也想过这个问题,是否也有这个疑问? ok,今天就展开来讲一下&am…

深度分析React源码中的合成事件

热身准备 明确几个概念 在React17.0.3版本中: 所有事件都是委托在id root的DOM元素中(网上很多说是在document中,17版本不是了);在应用中所有节点的事件监听其实都是在id root的DOM元素中触发;React自…

【MySQL 第十一天 创建和存储|复合结构的存储|存储过程和函数的区别】

【MySQL 第十一天 创建和存储|复合结构的存储|存储过程和函数的区别】【1】mysql储存过程及语法结构【1.1】mysql过程体【2】mysql创建和使用存储过程【2.1】mysql创建无参的存储过程【2.2】mysql创建有参的输入输出存储过程【3】mysql删除存储过程【4】mysql创建复合结构的存储…

专精特新小巨人的认定条件

奖励:对新认定的专精特新“小巨人”企业,聊城市财政最高一次性奖励50万元。其他地区各有不同。 认定条件 专精特新“小巨人”企业认定需同时满足专、精、特、新、链、品六个方面指标。 (一)专业化指标:坚持专业化发展道路,长期…

大学生体育运动网页设计模板代码 DIV布局校园运动网页作业成品 HTML学校网页制作模板 学生简单体育运动网站设计成品

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

C++知识精讲14 | 算法篇之二分查找算法

博主主页:Cool Kid~Yu仙笙_C领域博主🦄 目录 二分查找定义 二分查找效率 二分查找与遍历的对比 二分查找的限制性 二分查找的限制性(总结) 二分查找搭建 循环实现二分查找 循环二分查找基本框架: 循环二分查找源码&am…

【苹果家庭iMessage推送】Aupperpushslcertificate或ProductPushsCertificate证书不可以过期

推荐内容IMESSGAE相关 作者推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者推荐内容3.日历推 *** 点击即可查看作者要求内容信息作者推荐…