广告
返回顶部
首页 > 资讯 > 精选 >网络爬虫的原理介绍
  • 393
分享到

网络爬虫的原理介绍

2023-06-02 06:06:40 393人浏览 薄情痞子
摘要

这篇文章主要介绍“网络爬虫的原理介绍”,在日常操作中,相信很多人在网络爬虫的原理介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”网络爬虫的原理介绍”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!认识浏览器

这篇文章主要介绍“网络爬虫的原理介绍”,在日常操作中,相信很多人在网络爬虫的原理介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”网络爬虫的原理介绍”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

认识浏览器和服务器

大家对浏览器应该一点都不陌生,可以说,只要上过网的人都知道浏览器。可是,明白浏览器各种原理的人可不一定多。

作为要开发爬虫的小伙伴,是一定一定要明白浏览器的工作原理的。这是你写爬虫的必备工具,别无他。

大家在面试的时候,有没有遇到这么一个非常宏观而又处处细节的解答题:

  • 请说说从你在浏览器地址栏输入网站到你看到网页中间都发生了什么?

这真是一个考验知识面的题啊,经验老道的老猿既可以滔滔不绝的讲上三天三夜,也可以提炼出几分钟的精华讲个大概。大家恐怕对整个过程就一知半解了。

巧的是,对这个问题理解的越透彻,越对写爬虫有帮助。换句话说,爬虫是一个考验综合技能的领域。那么,大家准备好迎接这个综合技能挑战了吗?

废话不多说,我们就从解答这个题目开始,认识浏览器和服务器,看看这中间有哪些知识是爬虫要用到的。

前面也说过,这个问题可以讲上三天三夜,但我们没那么多时间,其中一些细节就略过,把大致流程结合爬虫讲一讲,分成三部分:

  1. 浏览器发出请求

  2. 服务器做出响应

  3. 浏览器接收响应

1. 浏览器发出请求

在浏览器地址栏输入网址后回车,浏览器请服务器提出网页请求,也就是告诉服务器,我要看你的某个网页。
上面短短一句话,蕴藏了无数玄机啊,让我不得不费点口舌一一道来。主要讲述:

  • 网址是不是有效的?

  • 服务器在哪里?

  • 浏览器向服务器发送了些什么?

  • 服务器返回了些什么?

1) 网址是不是有效的?

首先,浏览器要判断你输入的网址(URL)是否合法有效。对应URL,小猿们并不陌生吧,以Http(s)开头的那一长串的字符,但是你知道它还可以以ftp, mailto, file, data, irc开头吗?下面是它最完整的语法格式:

URI = scheme:[//authority]path[?query][#fragment]# 其中, authority 又是这样的:authority = [userinfo@]host[:port]# userinfo可以同时包含user name和passWord,以:分割userinfo = [user_name:password]

用图更形象的表现处理就是这样的:

网络爬虫的原理介绍

经验之谈:要判断URL的合法性

python里面可以用urllib.parse来进行URL的各种操作

In [1]: import urllib.parse In [2]: url = 'http://dachong:the_password@www.yuanrenxue.com/user/info?page=2'In [3]: zz = urllib.parse.urlparse(url)Out[4]: ParseResult(scheme='http', netloc='dachong:the_password@www.yuanrenxue.com', path='/user/info', params='', query='page=2', fragment='')

我们看到,urlparse函数把URL分析成了6部分:
scheme://netloc/path;params?query#fragment
需要主要的是 netloc 并不等同于 URL 语法定义中的host

2) 服务器在哪里?

上面URL定义中的host,就是互联网上的一台服务器,它可以是一个IP地址,但通常是我们所说的域名。域名通过DNS绑定到一个(或多个)IP地址上。浏览器要访问某个域名的网站就要先通过DNS服务器解析域名,得到真实的IP地址。
这里的域名解析一般是由操作系统完成的,爬虫不需要关心。然而,当你写一个大型爬虫,像Google、百度搜索引擎那样的爬虫的时候,效率变得很主要,爬虫就要维护自己的DNS缓存
老猿经验:大型爬虫要维护自己的DNS缓存

3) 浏览器向服务器发送些什么?

浏览器获得了网站服务器的IP地址,就可以向服务器发送请求了。这个请求就是遵循http协议的。写爬虫需要关心的就是http协议的headers,下面是访问 en.wikipedia.org/wiki/URL 时浏览器发送的请求 headers:

网络爬虫的原理介绍

可能已经从图中看出来些端倪,发送的http请求头是类似一个字典的结构:

  • authority: 就是访问的目标机器;

  • method: http请求的方法有很多:

    • GET

    • HEAD

    • POST

    • PUT

    • DELETE

    • CONNECT

    • OPTioNS

    • TRACE

    • PATCH
      一般,爬虫使用最多的是GET和POST

  • path: 访问的网站的路径

  • scheme: 请求的协议类型,这里是https

  • accept: 能够接受的回应内容类型(Content-Types)

  • accept-encoding: 能够接受的编码方式列表

  • accept-language: 能够接受的回应内容的自然语言列表

  • cache-control: 指定在这次的请求/响应链中的所有缓存机制 都必须 遵守的指令

  • cookie: 之前由服务器通过 Set- Cookie发送的一个 超文本传输协议Cookie
    这是爬虫很关心的一个东东,登录信息都在这里。

  • upgrade-insecuree-requests: 非标准请求字段,可忽略之。

  • user-agent: 浏览器身份标识

这也是爬虫很关心的部分。比如,你需要得到手机版页面,就要设置浏览器身份标识为手机浏览器的user-agent。

经验之谈: 通过设置headers跟服务器沟通

4) 服务器返回了些什么?

如果我们在浏览器地址栏输入一个网页网址(不是文件下载地址),回车后,很快就看到了一个网页,里面包含排版文字、图片、视频等数据,是一个丰富内容格式的页面。然而,我通过浏览器查看源代码,看到的却是一对文本格式的html代码。

没错,就是一堆的代码,却让浏览器给渲染成了漂亮的网页。这对代码里面有:

  • CSS: 浏览器根据它来排版,安排文字、图片等的位置;

  • javascript: 浏览器运行它可以让用户和网页交互;

  • 图片等链接: 浏览器再去下载这些链接,最终渲染成网页。

而我们想要爬取的信息就藏在html代码中,我们可以通过解析方法提取其中我们想要的内容。如果html代码里面没有我们想要的数据,但是在网页里面却看到了,那就是浏览器通过ajax请求异步加载(偷偷下载)了那部分数据。

这个时候,我们就要通过观察浏览器的加载过程来发现具体是哪个ajax请求加载了我们需要的数据。

到此,关于“网络爬虫的原理介绍”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 网络爬虫的原理介绍

本文链接: https://www.lsjlt.com/news/229175.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 网络爬虫的原理介绍
    这篇文章主要介绍“网络爬虫的原理介绍”,在日常操作中,相信很多人在网络爬虫的原理介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”网络爬虫的原理介绍”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!认识浏览器...
    99+
    2023-06-02
  • 关于Python网络爬虫requests库的介绍
    1. 什么是网络爬虫 简单来说,就是构建一个程序,以自动化的方式从网络上下载、解析和组织数据。 就像我们浏览网页的时候,对于我们感兴趣的内容我们会复制粘贴到自己的笔记本中,方便下次阅...
    99+
    2023-05-18
    Python网络爬虫 Python requests库
  • Python网络爬虫之HTTP原理
    目录⭐️爬虫基础🌟HTTP 基本原理✨URI和 URL✨超文本✨HTTP 和HTTPS ✨HTTP 请求过程✨请求✨响应⭐️爬虫基础 在写爬虫之前,我们还需要了解一些基础知...
    99+
    2023-05-15
    Python网络爬虫HTTP原理 Python网络HTTP原理 Python HTTP原理
  • 网络爬虫的意义和原理是什么
    本篇内容主要讲解“网络爬虫的意义和原理是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“网络爬虫的意义和原理是什么”吧!人们正在以前所未有的速度转向互联网,我...
    99+
    2022-10-19
  • Python网络爬虫之HTTP原理是什么
    今天小编给大家分享一下Python网络爬虫之HTTP原理是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。HTTP 基本原...
    99+
    2023-07-06
  • 爬虫基本原理介绍、实现以及问题解决
    文章目录 一、爬虫的意义1.前言2.爬虫能做什么3.爬虫有什么意义 二、爬虫的实现1.爬虫的基础原理2.api的获取3.爬虫实现 三、反爬解决方案1.反爬的实现方式2.反爬的解决方法3...
    99+
    2023-09-02
    python 爬虫
  • 爬虫的基本原理
    爬虫是什么如果我们把互联网比作一张大的蜘蛛网,数据便是存放于蜘蛛网的各个节点,而爬虫就是一只小蜘蛛,沿着网络抓取自己的猎物(数据)爬虫指的是:向网站发起请求,获取资源后分析并提取有用数据的程序;从技术层面来说就是 通过程序模拟浏览器请求站点...
    99+
    2023-01-30
    爬虫 基本原理
  • 爬虫中网络ip的用法
    这篇文章主要讲解了“爬虫中网络ip的用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“爬虫中网络ip的用法”吧!对于网络操作,不同领域的用户会有相应的技术工具和习惯。1、在爬虫中,ip限制问...
    99+
    2023-06-20
  • 网络爬虫的常见方式
    本篇内容主要讲解“网络爬虫的常见方式”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“网络爬虫的常见方式”吧!IP代理是一个网络信息的中转站,代理客户的真实IP进行访问,代理IP有三种形式,普通IP...
    99+
    2023-06-20
  • Python3网络爬虫实战-19、代理基
    我们在做爬虫的过程中经常会遇到这样的情况,最初爬虫正常运行,正常抓取数据,一切看起来都是那么的美好,然而一杯茶的功夫可能就会出现错误,比如 403 Forbidden,这时候打开网页一看,可能会看到“您的 IP 访问频率太高”这样的提示。出...
    99+
    2023-01-31
    爬虫 实战 网络
  • python教程网络爬虫及数据可视化原理解析
    目录1 项目背景1.1Python的优势1.2网络爬虫1.3数据可视化1.4Python环境介绍1.4.1简介1.4.2特点1.5扩展库介绍1.5.1安装模块1.5.2主要模块介绍2...
    99+
    2022-11-12
  • python爬虫的工作原理
    1.爬虫的工作原理 网络爬虫,即Web Spider,是一个很形象的名字。把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。网络蜘蛛是通过网页的链接地址来寻找网页的。从网站某一个页面(通常...
    99+
    2022-06-04
    爬虫 工作原理 python
  • 网络爬虫如何使用http代理api
    本篇内容主要讲解“网络爬虫如何使用http代理api”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“网络爬虫如何使用http代理api”吧!大数据时代,大量的网络爬虫项目正在进行,因为通过数据的采...
    99+
    2023-06-20
  • Android编写简单的网络爬虫
    一、网络爬虫的基本知识 网络爬虫通过遍历互联网络,把网络中的相关网页全部抓取过来,这体现了爬的概念。爬虫如何遍历网络呢,互联网可以看做是一张大图,每个页面看做其中的一个节点,页...
    99+
    2022-06-06
    爬虫 网络爬虫 Android
  • python网络爬虫的流程步骤
    本文将为大家详细介绍“python网络爬虫的流程步骤”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“python网络爬虫的流程步骤”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一起去收获...
    99+
    2023-06-08
  • python网络爬虫指的是什么
    小编给大家分享一下python网络爬虫指的是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!python有哪些常用库python常用的库:1.requesuts;2.scrapy;3.pillow;4.twisted;5...
    99+
    2023-06-14
  • 网络安全及防御之SQL注入原理介绍
    目录A.SQL注入概述什么是SQL注入SQL注入的原理SQL注入的地位SQL注入的来源SQL注入的主要特点SQL注入的危害B.SQL注入攻击SQL注入攻击SQL注入威胁表达方式SQL...
    99+
    2022-11-12
  • Python 网页爬虫原理及代理 IP 使用
    目录 前言 一、Python 网页爬虫原理 二、Python 网页爬虫案例 步骤1:分析网页 步骤2:提取数据 步骤3:存储数据 三、使用代理 IP 四、总结 前言 随着互联网的发展,网络上的信息量变得越来越庞大。对于数据分析人员和研究...
    99+
    2023-09-14
    python 爬虫 tcp/ip
  • 如何在Python中处理网络爬虫的问题
    如何在Python中处理网络爬虫的问题网络爬虫是获取互联网上信息的重要方式,而Python作为一种简单易用且功能强大的编程语言,被广泛用于网络爬虫开发。本文将介绍如何在Python中处理网络爬虫的问题,并提供具体的代码示例。一、网络爬虫的基...
    99+
    2023-10-22
    Python 网络爬虫 处理问题
  • 代理IP对网络爬虫的影响有哪些
    这篇文章主要介绍“代理IP对网络爬虫的影响有哪些”,在日常操作中,相信很多人在代理IP对网络爬虫的影响有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”代理IP对网络爬虫的影响有哪些”的疑惑有所帮助!接下来...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作