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