标签:浏览器 请求 URL 爬虫 理论知识 准备 服务器 客户端
目录
一、基础知识准备
1.1 客户端与服务端
• 客户端(client):为⽤户(浏览器、⼿机等终端使⽤者)提供本地服
务的程序
• 服务端(server):为服务器(云服务、主机)提供服务的程序
• 请求(request):客户端发向服务端,寻求服务
• 响应(response):服务端发向客户端,提供服务
1.2 HTTP协议与HTML
• HTML:全称HyperText Markup Language,超⽂本标记语⾔,诞⽣
于1960年(Ted Nelson)(互联⽹诞⽣于1969年);
• HTTP:全称HyperText Transfer Protocol,超⽂本传输协议(https://
www.ietf.org/rfc/rfc2616.txt)
1.3 URI、URN和URL
• URI(⽹络资源ID):统⼀资源识别符(Uniform Resource
Identifier)
• URN(只命名,不定位资源):统⼀资源名称(Uniform Resource
Name),举例:磁⼒链接、ISBN码
• URL(命名+定位资源):统⼀资源定位符(Uniform Resource Locator)
• 三者的关系:URI = URN + URL
1.4 超文本
• 普通⽂本:纯⽂字的作⽂;
• 超⽂本:除了⽂字、还有图⽚、⾳频、视频、超链接等资源:标签⾥⾯是图⽚、标签⾥⾯是⾳频,标签⾥⾯是视频
1.5 HTTPS
• URL开头可能是http、https、ftp、mailto、telnet
• 爬⾍通常要抓取的就是http和https
• HTTPS(HyperText Transfer Protocol over Secure Socket Layer),是HTTP的安全加强版,即HTTP加⼊了SSL;SSL是⽹景公司研发的数据传说安全协议:通过加密的⻄⻄安全通道保证数据传输安全;https⽹站可以通过地址栏的锁头标志查看其信息。
举例:
淘宝⽹ https://www.taobao.com/
⼈⺠⽹ http://www.people.com.cn/
1.6 HTTP请求过程
浏览器输⼊⼀个⽹址URL —— 看到网页。动作分解:
• 1. 浏览器向⽹站所在服务器发送⼀个请求;
• 2. 服务器对请求进⾏处理和解析
• 3. 服务器向浏览器返回响应
• 4. 浏览器对响应做解析,呈现网页
1.7 如何获取cookies,header等信息
打开需要爬取数据的网页,右键—点击【检查】,进入开发者模式;在出现的新窗口内,不同的浏览器布局会有不同,宗旨是寻找获取Headers, Response, Cookies等信息。以下是Firefox浏览器的例子
1.8 HTTP请求方法
最常见的两种请求方法:Get和Post
- get⽅法:1.在⽹址栏⾥输⼊⼀个⽹址;2.在搜索框中输⼊搜索词
- post⽅法:表单登录
get和post的比较
- get请求的参数包含在url中,可以在url中看到,post请求url不包含参
数,数据都是通过表单传输的,包含在请求体中;post⽐get要安全; - get请求提交的url⻓度有限制,不同浏览器不同版本的⻓度限制不同;post⽅法的数据⼤⼩限制,取决于表单的设置,可以远远⼤于get
请求的数据
还有其他请求方法:
- HEAD:⽤于获取报头
- PUT:从客户端向服务器传送的数据取代指定⽂档中的内容
- DELETE:删除服务器中指定的内容
更详细的介绍:HTML教程
1.9 请求信息
• 请求⽹址:即url
• 请求体:post请求中的表单数据;get请求的请求体为空
• 请求头
Accept:请求报头域,⽤于指定客户端可以接受哪些类型的信息;
Accept-Encoding:客户端可接受的内容编码;
Accept-Language:客户端可接受的语⾔类型
Cache-control:客户端对缓存的设置
cookie:⽹站为了跟踪⽤户⽽存放在⽤户本地的数据;
Upgrade-insecure-requests:1 Chrome可以⾃动将http请求升级为https的安全传输;
user-agent:⽤于让服务器识别客户使⽤的操作系统及版本、浏览器及版本;可⽤于伪装浏览器
1.10 响应
- 响应状态码
用于表示服务器的响应状态,最常见的如下:
00
• 200:服务器成功处理了请求
• 301:⽹址重定向
• 403:服务器拒绝此请求
• 404:服务器找不到请求的资源
• 503:服务器⽬前⽆法使⽤
- 响应头
• date:⽇期和时间标记
• expires:指定响应的过期时间;
• server:服务器的名称、版本
• age:缓存处理的时间
• content-length:响应⻓度
• content-type:响应类型
二、爬虫入门
2.1 爬虫的价值
爬⾍(英⽂:spider, crawler, gecco) —— 从互联⽹、⽂件等资源,按照⼀定规则,抽 取所需信息的程序或脚本⽂件。爬⾍往往是产品线上⾯对外部⽹络的第⼀层:特异情况多且复杂,既要⾯对各种反爬,也要有⼀定的系统设计能⼒。
2.2 爬虫的合法性问题
爬⾍协议:robots.txt。全称是“⽹络爬⾍排除标准”,⽹站通过Robots协议告诉搜索引擎哪些⻚⾯可以抓取,哪些⻚⾯不能抓取。
查看网站爬虫协议的方法:
举例1:今⽇头条 https://www.toutiao.com/robots.txt
举例2: 新浪新闻:https://news.sina.com.cn//robots.txt
总结方法:网页链接/robots.txt
在robots.txt文件中,可以获取User-agent,不允许或者允许爬取的部分等信息。
2.3 爬虫分类
- 通⽤爬⾍:爬⾍从⼀个起始⽹址进⼊,抓取全站所有信息,⽤户主要
是⼤型⻔户⽹站、搜索引擎等⼤型web服务;(⾕歌、雅⻁、百度、
搜狗、Naver、Yandex)
优势:开放性 速度快
劣势:⽬标不明确 - 聚焦爬⾍:只抓取定义好要抓取的内容,适⽤于快速获取所需信息的
业务;(头条的新闻爬⾍、⾼德的地理信息爬⾍、雪球的⾦融数据爬
⾍)
1.⽬标明确
2.对⽤户的需求⾮常精准
3.返回的内容很固定
2.4 爬虫工作原理
首先确认抓取⽬标的url是哪⼀个,使用pyhton、java或者Go语言代码发送请求给服务器,服务器接受后响应并且对其解析;获取网页源代码后进行保存;从URL队列中读取新的URL,并依据新的URL爬取网页,同时从新网页中获取新URL,并重复上述的爬取过程。以上是通用爬虫的工作流程。
而聚焦爬虫由于是一种有目的的爬取需要的数据,多了一些目标的定义和过滤工作。首先对爬取目标进行定义和描述(正则表达式),获取初始的URL,根据URL爬取页面。
标签:浏览器,请求,URL,爬虫,理论知识,准备,服务器,客户端 来源: https://blog.csdn.net/ktsmeb/article/details/118713197
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。