网页qq抓取什么原理(认识浏览器和服务器的日常操作方法(一))

优采云 发布时间: 2021-09-22 16:11

  网页qq抓取什么原理(认识浏览器和服务器的日常操作方法(一))

  本文文章主要介绍“网络爬虫原理简介”。在日常操作中,我相信很多人对网络爬虫原理的引入都有疑问。小编查阅了各种资料,整理出简单易用的操作方法。我希望这将有助于解决“网络爬虫原理简介”的疑问!接下来请跟随小编学习

  了解浏览器和服务器

  我们应该对浏览器并不陌生。可以说,只要上网的人都知道浏览器。然而,了解浏览器原理的人并不多

  作为开发爬虫的小型合作伙伴,您必须了解浏览器的工作原理。这是编写爬行动物的必要工具。没有别的了

  在面试过程中,您是否遇到过这样一个宏观而详细的回答问题:

  这真是对知识的考验。这只经验丰富的老猿不仅能讲三天三夜,还能从几分钟内提取精华。恐怕你对整个过程略知一二

  巧合的是,你对这个问题理解得越透彻,写爬行动物就越有帮助。换句话说,爬行动物是测试综合技能的领域。那么,你准备好迎接这个全面的技能挑战了吗

  别再胡说八道了。让我们从回答这个问题开始,了解浏览器和服务器,并了解爬虫程序需要使用哪些知识

  如前所述,我们可以讨论这个问题三天三夜,但我们没有那么多时间。我们将跳过一些细节。让我们结合爬行动物讨论一般过程,并将其分为三个部分:

  来自浏览器的请求

  服务器响应

  浏览器收到响应

  1.来自浏览器的请求

  在浏览器地址栏中输入URL,然后按Enter键。浏览器要求服务器发出一个网页请求,也就是说,告诉服务器我想查看您的一个网页

  上面的短句收录了无数的谜团,这让我不得不花一些时间一直在说话。主要是关于:

  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分析为六个部分:

  scheme://netloc/path ; 参数?查询#片段

  需要注意的是,netloc在URL语法定义中并不等同于主机

  2)服务器在哪里

  上述URL定义中的主机是Internet上的服务器。它可以是IP地址,但通常我们称之为域名。域名通过DNS绑定到一个(或多个)IP地址。要访问域名,网站浏览器必须首先通过DNS服务器解析域名,以获得真实的IP地址

  这里的域名解析通常由操作系统完成,爬虫不需要在意。然而,当你编写一个大型爬虫程序时,比如谷歌和百度搜索引擎,效率变得非常重要,爬虫程序需要维护自己的DNS缓存

  老ape经验:大型爬虫需要维护自己的DNS缓存

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

  浏览器获取网站服务器的IP地址后,可以向服务器发送请求。此请求遵循HTTP协议。爬虫需要关心的是HTTP协议的头。以下是访问/wiki/URL时浏览器发送的请求标头:

  

  从图中可以看出一些线索。发送的HTTP请求头类似于字典结构:

  路径:访问网站的路径@

  Scheme:请求的协议类型,这里是HTTPS

  接受:可接受的响应内容类型

  接受编码:可接受编码方法的列表

  接受语言:可接受响应内容的自然语言列表

  缓存控制:指定请求/响应链中所有缓存机制必须遵守的指令

  Cookie:服务器先前通过set Cookie发送的超文本传输协议Cookie

  这是爬虫非常关心的事情。登录信息在这里

  升级执行请求:非标准请求字段,可以忽略

  用户代理:浏览器标识

  这就是爬行动物所关心的。例如,如果需要获取移动版本页面,则需要将浏览器ID设置为移动浏览器的用户代理

  体验:通过设置头与服务器通信

  4)服务器返回了什么

  如果我们在浏览器地址栏中输入一个网址(而不是文件下载地址),我们很快就会看到一个收录排版文本、图片、视频和其他数据的网页,这是一个内容丰富的网页。然而,当我通过浏览器查看源代码时,我看到一对文本格式的HTML代码

  是的,这是一堆代码,但是让浏览器把它呈现成一个漂亮的网页。这对代码收录:

  我们想要抓取的信息隐藏在HTML代码中,我们可以通过解析提取我们想要的内容。如果HTML代码中没有我们想要的数据,但我们在网页中看到了它,那么浏览器就通过Ajax请求异步加载(秘密下载)该部分数据

  此时,我们需要观察浏览器的加载过程,找出哪个Ajax请求加载了我们需要的数据

  现在,“网络爬虫原理导论”的研究已经结束。我希望我们能解决你的疑问。理论和实践的结合能更好地帮助你学习。去试试吧!如果您想继续学习更多相关知识,请继续关注伊苏云网站,小编将继续努力为您带来更实用的文章@

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线