爬虫基本原理

这篇具有很好参考价值的文章主要介绍了爬虫基本原理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.1获取网页

爬虫首先要做的工作就是获取网页,这里就是获取网页的源代码。源代码里包含了网页的部分有用信息,所以只要把源代码获取下来,就可以从中提取想要的信息了。

1.1.1提取信息

获取网页源代码后,接下来就是分析网页源代码,从中提取我们想要的数据。
另外,由于网页的结构有一定的规则,所以还有一些根据网页节点属性、cSS 选择器或 XPath 来提取网页信息的库,如 Beautifulsoup、pyquery、lxml等。使用这些库,我们可以高效快速地从中提取网页信息,如节点的属性、文本值等。
提取信息是爬虫非常重要的部分,它可以使杂乱的数据变得条理清晰,以便我们后续处理和分析数据。

1.1.2保存数据

提取信息后,我们一般会将提取到的数据保存到某处以便后续使用。这里保存形式有多种多样,如可以简单保存为TXT文本或了SON文本,也可以保存到数据库,如 MysQL和 MongoDB等,也可保存至远程服务器,如借助 SFTP进行操作等。
爬虫基本原理

  1. 向起始url发送请求,并获取响应
  2. 对响应进行提取
  3. 如果提取url,则继续发送请求获取响应
  4. 如果提取数据,则将数据进行保存

1.2请求

请求由客户端向服务端发出,可以分为四个内容:请求方法、请求的网址、请求头、请求体。

1.2.1 请求方法

GET:请求页面,并返回页面内容
HEAD:类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头
POST:大多用于提交表单或上传文件,数据包含在请求体中
PUT:从客户端向服务器传送的数据取代指定文档中的内容
DELETE:请求服务器删除指定的页面
CONNECT:把服务器当作跳板,让服务器代替客户端访问其他网页
OPTIONS:允许客户端查看服务器的性能
TRACE:回显服务器收到的请求,主要用于测试或诊断

1.2.2 请求网址

请求的网址,即统一资源定位符URL,它可以唯一确定我们想请求的资源。
https://www.baidu.com/s?wd=python
https表示协议
www.baidu.com表示域名
s表示路径
wd=python表示查询参数

1.2.3 请求头

右键页面,检查,网络,然后点XHR,刷新页面,然后点击“headers”,找到请求标头。
爬虫基本原理
接下来解释每一行都代表什么:
:Authority::请求的目标服务器的主机名或IP地址,这里是api.bilibili.com。
:Method::HTTP请求方法。这里是GET,表示获取资源。
:Path::请求的路径。这里是/x/web-interface/cdn/report?from=report。
:Scheme::请求的协议方案。这里是https,表示使用HTTPS协议进行通信。
Accept::客户端可接受的响应内容类型。这里是*/*,表示接受任意类型的响应。
Accept-Encoding::客户端可接受的响应内容编码方式。这里是gzip, deflate, br,表示支持gzip、deflate和br(Brotli)压缩方式。
Accept-Language::客户端可接受的语言类型。这里是zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,表示首选中文(中国大陆), 其次中文, 最后英文(美国)。
Cache-Control::控制缓存行为的指令,这里是no-cache,表示不使用缓存。
Origin::指定请求的来源,这里是https://www.bilibili.com。
Pragma::与缓存相关的指令,这里是no-cache,表示不使用缓存。
Referer::指定请求的来源页面或链接地址,这里是https://www.bilibili.com/。
Sec-Ch-Ua::指定浏览器的User-Agent字符串,表示浏览器及其版本信息。
Sec-Ch-Ua-Mobile::指定浏览器是否是移动版。
Sec-Ch-Ua-Platform::指定浏览器运行的平台,这里是Windows。
Sec-Fetch-Dest::指定请求的资源类型,这里是empty,表示空资源。
Sec-Fetch-Mode::指定请求的模式,这里是cors,表示使用CORS(跨源资源共享)请求。
Sec-Fetch-Site::指定请求的站点类型,这里是same-site,表示同源站点。
User-Agent::浏览器或客户端的用户代理标识,用于标识客户端的软件和版本信息。这里是Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36,表示使用的是Windows操作系统下的Chrome浏览器。

1.2.4请求体

请求体一般承载的内容是POST请求中的表单数据,但是对于GET请求,请求体为空。
先找到请求方法为POST的页面:
爬虫基本原理
然后在载荷中找到相应的表单数据:
爬虫基本原理
表单数据代表了每次进行访问所需要带的请求参数。

如果是GET请求带了载荷的话,那都会在URL中进行体现,比如:
爬虫基本原理

爬虫基本原理
可以发现,Payload中的report参数在请求的URL中体现了出来。

1.3响应

响应的状态码在头部就可以看到,以下是相应状态码及其解释:文章来源地址https://www.toymoban.com/news/detail-447948.html

  • 1xx(信息性状态码):表示请求已被接收,需要进一步处理。
    100 Continue:服务器已接收到请求的起始部分,客户端应继续发送剩余的请求。
    101 Switching Protocols:服务器将按照客户端请求的协议切换。
  • 2xx(成功状态码):表示请求已成功处理并得到响应。
    200 OK:请求成功,正常返回结果。
    201 Created:请求成功,并在服务器上创建了新的资源。
    204 No Content:请求成功,但响应中不包含实体的主体部分。
  • 3xx(重定向状态码):表示需要进一步操作以完成请求。
    301 Moved Permanently:请求的资源已永久移动到新位置。
    302 Found:请求的资源临时移动到不同的位置。
    304 Not Modified:客户端的缓存资源是最新的,不需要重新传输。
  • 4xx(客户端错误状态码):表示请求包含错误或无法完成请求。
    400 Bad Request:请求无效,服务器无法理解。
    401 Unauthorized:请求需要身份验证。
    403 Forbidden:服务器拒绝访问请求的资源。
  • 5xx(服务器错误状态码):表示服务器无法完成请求。
    500 Internal Server Error:服务器遇到了意外错误,无法完成请求。
    502 Bad Gateway:作为代理或网关的服务器收到无效响应。
    503 Service Unavailable:服务器暂时无法处理请求,通常是由于过载或维护。

到了这里,关于爬虫基本原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 快乐学Python,数据分析之使用爬虫获取网页内容

    在上一篇文章中,我们了解了爬虫的原理以及要实现爬虫的三个主要步骤:下载网页-分析网页-保存数据。 下面,我们就来看一下:如何使用Python下载网页。 浏览器画网页的流程,是浏览器将用户输入的网址告诉网站的服务器,然后网站的服务器将网址对应的网页返回给浏览

    2024年01月17日
    浏览(54)
  • Python 网页爬虫的原理是怎样的?

    网页爬虫是一种自动化工具,用于从互联网上获取和提取信息。它们被广泛用于搜索引擎、数据挖掘、市场研究等领域。 网页爬虫的工作原理可以分为以下几个步骤: URL调度、页面下载、页面解析和数据提取。 URL调度:  网页爬虫首先需要一个初始的URL作为起点,然后根据

    2024年02月09日
    浏览(55)
  • 【一个超简单的爬虫demo】探索新浪网:使用 Python 爬虫获取动态网页数据

    可以实战教爬虫吗,搭个环境尝试爬进去。尝试收集一些数据 一位粉丝想了解爬虫,我们今天从最基础的开始吧! 本文将介绍如何使用 Python 爬虫技术爬取新浪网首页的内容。新浪网作为一个内容丰富且更新频繁的新闻网站,是理解动态网页爬取的绝佳例子。 首先,确保你

    2024年02月04日
    浏览(55)
  • Python 网页爬虫原理及代理 IP 使用

    目录 前言 一、Python 网页爬虫原理 二、Python 网页爬虫案例 步骤1:分析网页 步骤2:提取数据 步骤3:存储数据 三、使用代理 IP 四、总结 前言 随着互联网的发展,网络上的信息量变得越来越庞大。对于数据分析人员和研究人员来说,获取这些数据是一项重要的任务。Python

    2024年02月09日
    浏览(55)
  • 第一个Python程序_获取网页 HTML 信息[Python爬虫学习笔记]

    使用 Python 内置的 urllib 库获取网页的 html 信息。注意,urllib 库属于 Python 的标准库模块,无须单独安装,它是 Python 爬虫的常用模块。 1) 获取响应对象 向百度(http://www.baidu.com/)发起请求,获取百度首页的 HTML 信息,代码如下: 上述代码会返回百度首页的响应对象, 其中

    2024年01月17日
    浏览(41)
  • Selenium + Chrome WebDriver + JS:实现高级爬虫技巧,获取网页响应状态码!

    随着爬虫技术的发展,我们使用requests库能够轻松获取响应状态码,但对于Selenium爬虫,同样可以迎刃而解。通过执行JavaScript脚本,我们可以智能地捕获网页的响应状态码,实现高级的爬虫功能。 在开始之前,确保你已正确安装Selenium和Chrome WebDriver,并配置好环境变量。 以下

    2024年02月07日
    浏览(55)
  • python爬取豆瓣电影排行前250获取电影名称和网络链接[静态网页]————爬虫实例(1)

    目录 1.算法原理: 2.程序流程: 3.程序代码: 4.运行结果(部分结果展示): 5.结果分析: (1)利用import命令导入模块或者导入模块中的对象; ①利用requests库获取数据; ②用BeautifulSoup库将网页源代码转换成BeautifulSoup类型,以便于数据的解析和处理; ③用time库进行时间延时

    2023年04月16日
    浏览(67)
  • 金融数据获取:当爬虫遇上要鼠标滚轮滚动才会刷新数据的网页(保姆级教程)

    目录 1. 谁这么会给我整活儿 2. Selenium模拟网页浏览器爬取 2.1 安装和准备工作 2.2.1 高度判断 2.2.2 顶部距离判断 3: 爬取内容 4: 完整代码,结果展示         什么,新浪的股票历史数据已经不直接提供了!          笔者前几日需要找一些澳洲市场的数据,奈何API没到

    2024年02月10日
    浏览(52)
  • 网络爬虫基本原理的介绍

    网络爬虫是一种计算机程序,它通过网络请求从不同的服务器收集和抓取信息,并存储在本地文件或数据库中。 网络爬虫的基本原理主要包含以下几个部分: 首先,选择爬行目标并获得初始URL,然后下载并解析这个URL,接着,根据提取出的新URL,继续进行重复下载和解析。

    2024年01月25日
    浏览(41)
  • 爬虫框架scrapy基本原理

    scrapy是python的爬虫框架,类似于django(python的web框架)。 安装: Mac、Linux 执行 pip3 install scrapy ,不存在任何问题 Windows 执行 pip3 install scrapy ,如果安装失败,执行下面步骤: (1)安装wheel(为支持通过文件安装软件): pip3 install wheel (wheel官网) (2)安装lxml: pip3 insta

    2024年02月15日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包