爬虫实战学习笔记_1 爬虫基础+HTTP原理

1 爬虫简介

网络爬虫(又被称作网络蜘蛛、网络机器人,在某些社区中也经常被称为网页追逐者)可以按照指定的规则(网络爬虫的算法)自动浏览或抓取网络中的信息。

1.1 Web网页存在方式

  • 表层网页指的是不需要提交表单,使用静态的超链接就可以直接访问的静态页面。
  • 深层网页指的是需要用户提交一些关键词才能获得的Wb页面。深层页面需要访问的信息数量是表层页面信息数量的几百倍,所以深层页面是主要的爬取对象。

1.2 网络爬虫的分类

1.2.1通用网络爬虫/全网爬虫

  • 通用网络爬虫的爬行范围和数量巨大,对爬行速度和存储空间要求较高,通常采用并行工作方式,需要较长时间才可以刷新一次页面,所以存在着一定的缺陷。
  • 主要应用于大型搜索引擎中,有非常高的应用价值。通用网络爬虫主要由初始URL(统一资源定位符)集合、UL队列、页面爬行模块,页面分析模块、页面数据库、链接过滤模块等构成。

1.2.2 聚焦网络爬虫/主题网络爬虫

  • 主要指按照预先定义好的主题,有选择地进行相关网页爬取的一种网络爬虫,将爬取的目标网页定位在与主题相关的页面中,极大地节省了硬件和网络资源,保存的页面也由于数量少而更快了。
  • 主要应用在对特定信息的爬取,为某一类特定的人群提供服务。

1.2.3 深层网络爬虫

深层网络爬虫主要通过六个基本功能的模块(爬行控制器、解析器、表单分析器、表单处理器、响应分析器、LVS控制器)和两个爬虫内部数据结构(URL列表、LVS表)等部分构成。其中,LVS表示标签、数值集合,用来表示填充表单的数据源。

1.3 爬虫的原理

①获取初始的网络地址,该地址是用户自己制定的初始爬取的网页。
②通过爬虫代码向网页服务器发送网络请求。
③实现网页中数据的解析,确认数据在网页代码中的位置。
④在服务器响应数据中,提取数据内容。
⑤实现数据的清洗,将无用数据筛选。
⑥将清洗后的数据保存至本地或数据库当中。

2 HTTP原理

2.1 URL

使用浏览器访问网页时,需要在浏览器地址栏处填写目标网页的URL地址,统一资源定位符。

2.2 HTTP协议

HTTP(hypertext transfer protocol),即超文本传输协议,是互联网上应用最为厂厂泛的一种网络),主要利用TCP(传输控制协议)在web服务器和客户端之间传输信息的协议。客户端使用器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端。

2.2.1 HTTP与Web服务器

当在浏览器输人URL地址后,浏览器会先请求DNS域名系统服务器,获得请求站点的P地址(根据URL地址www.aliyun.com获取其对应的P地址,如101.201.120.85),然后发送一个HTTP请求(request)给拥有该IP的主机(阿里云服务器),接着就会接收到服务器返回的HTTP响应(response),浏览器经过渲染后,以一种较好的效果呈现给用户。

2.2.2 Web服务器工作原理

①建立连接:客户端通过TCP/IP(传输控制协议、网际协议)协议建立到服务器的TCP连接。

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

③应答过程:服务器向客户端发送HTTP协议应答包,如果请求的资源包含动态语言的内容,那么服务器会调用动态语言的解释引擎处理动态语言部分,并将处理后得到的数据返回给客户端。由客户端HTML(超文本标记语言)文档,并在客户端屏幕上渲染图形结果。服务器返回给客户端的状态码可分为5种类型,由它们的第一位数字表示。

④关闭连接:客户端与服务器断开连接。

2.2.3 浏览器中的请求与响应

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

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

相关文章

LeetCode | HouseCode 算法题

题目: You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacent houses have security system connected and it…

爬虫实战学习笔记_2 网络请求urllib模块+设置请求头+Cookie+模拟登陆

1 urllib模块 1.1 urllib模块简介 Python3中将urib与urllib2模块的功能组合,并且命名为urllib。Python3中的urllib模块中包含多个功能的子模块,具体内容如下。 urllib.request:用于实现基本HTTP请求的模块。urlb.error:异常处理…

Python解决多个进程服务重复运行定时任务的问题

记录多实例服务定时任务出现运行多次的问题 问题:web项目运行多个实例时,定时任务会被执行多次的问题 举例来说 我使用库APScheduler排定了一个定时任务taskA在每天的晚上9点需要执行一次,我的web服务使用分布式运行了8个实例,于…

java----IO和NIO的区别

概念:NIO即New IO,这个库是在JDK1.4中才引入的。NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多。在Java API中提供了两套NIO,一套是针对标准输入输出NIO&#xf…

【Pytorch神经网络理论篇】 11 卷积网络模型+Sobel算子原理

同学你好!本文章于2021年末编写,已与实际存在较大的偏差! 故在2022年末对本系列进行填充与更新,欢迎大家订阅最新的专栏,获取基于Pytorch1.10版本的理论代码(2023版)实现, Pytorch深度学习理论篇(2023版)…

ubuntu 14.04中文显示乱码问题

乱码显示如下&#xff1a; [<E9><97><AE><E9><A2><98><E6><8F><8F><E8><BF><B0>]:<E5><A2><9E><E5><8A><A0>tm100<E9><A1><B9><E7><…

DataFrame高效处理行列数据/倒三角型数据/处理阶梯型数据/根据列的值确定行的值

锲子 在使用pandas处理数据时&#xff0c;遇到了一种要按照留存天数来处理的数据&#xff0c;当列所对应的日期超过了最晚的“今天”那么数据就要置为0&#xff0c;举个例子&#xff1a; 在这个DataFrame中&#xff0c;需要将超过了今天2022-10-30的数据置为“-”&#xff0c…

转载 ---资深HR告诉你:我如何筛选简历与选择人员的

资深HR告诉你&#xff1a;我如何筛选简历与选择人员的 有个公司HR看简历 先直接丢掉一半 理由是不要运气不好的应聘者。 当然这可能只是某些HR面对太多的简历产生了偷懒的情绪&#xff0c;但是不论是Manager&#xff0c;亦或是Team Leader&#xff0c;都会遇到招聘的问题&#…

爬虫实战学习笔记_3 网络请求urllib模块:设置IP代理+处理请求异常+解析URL+解码+编码+组合URL+URL连接

1 设置IP代理 1.1 方法论述 使用urllib模块设置代理IP是比较简单的&#xff0c;首先需要创建ProxyHandler对象&#xff0c;其参数为字典类型的代理IP&#xff0c;键名为协议类型&#xff08;如HTTP或者HTTPS)&#xff0c;值为代理链接。然后利用ProxyHandler对象与buildopene…

vim 插件cscope 使用

&#xff11;&#xff0e;安装 sudo apt-get install cscope &#xff12;&#xff0e;初始化 cscope -Rbq 你想在哪个目录下面用这个功能&#xff0c;就在哪个目录下面运行这个命令 &#xff13;&#xff0e;vim kpd.c &#xff14;&#xff0e;输入 :cs add cscope.o…

Sanic服务启动失败,报错Cannot finalize with no routes defined

Sanic服务启动失败&#xff0c;记录解决方法 问题描述 Sanic服务启动失败&#xff0c;同样的代码和python版本在之前的win10系统上运行的好好的&#xff0c;换了台win11的机器就跑不起来了&#xff0c;不知道是系统原因还是因为换了执行pycharm等其他原因 在尝试启动时总是会…

打一波鸡血

在朋友圈看的一首诗&#xff0c;觉得很励志&#xff0c;如下&#xff1a;问题在于过度担心未来总是埋怨现在不断惋惜过往内心不知足想法逾现实行动很迟缓时间可贵青春难再审视脚下的路充实度日一日尚短庸碌混迹一日便长无妄的借口只会难上加难脚踏实地走才能遇难成祥守住时光用…

【Pytorch神经网络理论篇】 12 卷积神经网络实现+卷积计算的图解

同学你好&#xff01;本文章于2021年末编写&#xff0c;获得广泛的好评&#xff01; 故在2022年末对本系列进行填充与更新&#xff0c;欢迎大家订阅最新的专栏&#xff0c;获取基于Pytorch1.10版本的理论代码(2023版)实现&#xff0c; Pytorch深度学习理论篇(2023版)目录地址…

vim 函数列表插件

&#xff11;&#xff0e;apt-get install exuberant-ctags &#xff12;&#xff0e;unzip taglist_42.zip  把解压出来的文件放到 /home/weiqifa(自己的用户名)/.vim/  资源下载&#xff1a; http://download.csdn.net/detail/weiqifa0/9137283&#xff13;&#xff0e;s…

【Pytorch神经网络实战案例】09 使用卷积提取图片的轮廓信息(手动模拟Sobel算子)

1 载入图片并显示 import matplotlib.pyplot as plt import matplotlib.image as mpimg import torch import torchvision.transforms as transforms import os os.environ["KMP_DUPLICATE_LIB_OK"]"TRUE" ### 1 载入图片并显示 myimg mpimg.imread(img.…

jquery深入学习

的转载于:https://www.cnblogs.com/lizhiwei8/p/6417798.html

【Pytorch神经网络理论篇】 13 深层卷积神经网络介绍+池化操作+深层卷积神经网络实战

同学你好&#xff01;本文章于2021年末编写&#xff0c;获得广泛的好评&#xff01; 故在2022年末对本系列进行填充与更新&#xff0c;欢迎大家订阅最新的专栏&#xff0c;获取基于Pytorch1.10版本的理论代码(2023版)实现&#xff0c; Pytorch深度学习理论篇(2023版)目录地址…

gulp 系统教程

移步: http://www.cnblogs.com/2050/p/4198792.html gulp外挂 加md5 版本号 自动合并图片并修改css的坐标 一个系统列子 gulp可以做哪些事情转载于:https://www.cnblogs.com/dhsz/p/6419383.html

Android 广播接收

问题&#xff1a;写了一个应用来验证我按下音量键时发送出来的广播&#xff0c;可是老是提示出错&#xff0c; 原因&#xff1a;我的整个应用只继承吧BroadcastReceive&#xff0c;没有实际的继承Activity所以总是出现各种问题&#xff0c;现在修改好&#xff0c;上传代码 http…

【Pytorch神经网络实战案例】10 搭建深度卷积神经网络

识别黑白图中的服装图案(Fashion-MNIST)https://blog.csdn.net/qq_39237205/article/details/123379997基于上述代码修改模型的组成 1 修改myConNet模型 1.1.1 修改阐述 将模型中的两个全连接层&#xff0c;变为全局平均池化层。 1.1.2 修改结果 ### 1.5 定义模型类 class m…