学习爬虫第一天 爬虫介绍及HTTP/HTTPS

1. 爬虫介绍

1-1. 爬虫定义

⽹络爬⾍(⼜被称为⽹⻚蜘蛛,⽹络机器⼈)就是模拟客户端发送⽹络请求,
接收请求响应,⼀种按照⼀定的规则,⾃动地抓取互联⽹信息的程序。
只要是浏览器能做的事情,原则上,爬⾍都能够做

1-2. 爬虫的用途

  1. 12306抢票
  2. 网站上的投票
  3. 短信轰炸
  4. 大数据获取

1-3. 爬虫的设计思路

  1. 确定需要爬取的url地址
  2. 通过HTTP/HTTPS协议获取对应的HTML页面
  3. 提取HTML页面有用的数据

2. 爬虫的种类

2-1. 通用爬虫(搜索引擎)

流程:
通用爬虫流程

2-2. 聚焦爬虫

流程:
聚焦爬虫流程
**定义:**是"⾯向特定主题需求"的⼀种⽹络爬⾍程序,它与通⽤搜索引擎爬⾍
的区别在于: 聚焦爬⾍在实施⽹⻚抓取时会对内容进⾏处理筛选,尽量保证只
抓取与需求相关的⽹⻚信息

3. robots协议

定义:
Robots协议(也叫爬⾍协议、机器⼈协议等),全称是“⽹络爬⾍排除标
准”(Robots Exclusion Protocol),⽹站通过Robots协议告诉搜索引擎哪些
⻚⾯可以抓取,哪些⻚⾯不能抓取

使用方法:
网址后面加 /robots.txt
如:
淘宝⽹:https://www.taobao.com/robots.txt
腾讯⽹: http://www.qq.com/robots.txt

4. HTTP和HTTPS协议

4-1. HTTP协议简介

概念: 通信计算机双⽅必须共同遵从的⼀组约定,只有遵守这个约定,计算机
之间才能相互通信
HTTP协议(HyperText Transfer Protocol,超⽂本传输协议):是⼀种发布
和接收 HTML⻚⾯的⽅法。
HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)简单讲
是HTTP的安全版,在HTTP下加⼊SSL层
SSL(Secure Sockets Layer 安全套接层)主要⽤于Web的安全传输协议,在
传输层对⽹络连接进⾏加密,保障在Internet上数据传输的安全
HTTP的端⼝号为80
HTTPS的端⼝号为443

4-2. HTTP的请求和响应

组成: 客户端请求消息 与 服务器响应消息
主要两种请求方式:
“GET” 请求:从服务器上获取数据
“POST” 请求: 常用于携带不公开的数据进行请求,如:网页登录

URL: 统⼀资源定位符,是⽤于完整地描述Internet上⽹⻚和其他资源的地址的
⼀种标识⽅法.

基本格式:

scheme://host[:port#]/path/…/[?query-string][#anchor]
scheme 协议(例如:http, https, ftp)
host 服务器的IP地址或者域名
port# 服务器的端⼝(如果是⾛协议默认端⼝,缺省端⼝80)
path 访问资源的路径
query-string 参数,发送给http服务器的数据
anchor 锚(跳转到⽹⻚的指定锚点位置)

4-3. 客户端HTTP请求

URL只是标识资源的位置,⽽HTTP是⽤来提交和获取资源。客户端发送⼀个
HTTP请求到服务器的请求消息,包括以下格式:
请求⾏、请求头部、空⾏、请求数据

一个典型的HTTP请求示例

GET / HTTP/1.1
Host: www.baidu.com
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.3
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Accept: text/html, applicat ion/ xhtml+xml, application/xml;q=0.9, image/wet
Sec-Fetch-Site: same-origin
Referer:https:/ /www. baidu. com/s?ie=utf-8&f=8&rsv_ bp=1&rsv_ idx=1&tn=baj
Accept -Encoding: gzip, deflate, br
Accept-Language: zh-CN, zh;q=0.9
Cookie: BIDUPSID=4049831 E3DB8DE890DFFCA6103FF02C1;

请求方法

方法 描述
GET 请求指定的页面信息,并返回实体主体
HEAD 类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头
POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件),数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改
PUT 从客户端向服务器传送的数据取代指定的文档的内容
DELETE 请求服务器删除指定的页面。
CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器
OPTIONS 允许客户端查看服务器的性能。
TRACE 回显服务器收到的请求,主要用于测试或诊断。

常用的请求报头

  1. HOST (主机和端口号)
    Host:对应⽹址URL中的Web名称和端⼝号,⽤于指定被请求资源的Internet
    主机和端⼝号,通常属于URL的⼀部分。
  2. Connection(链接类型)
    Connection:表示客户端与服务连接类型
    (1) Client 发起⼀个包含 Connection:keep-alive 的请求,HTTP/1.1
    使⽤ keep-alive 为默认值。
    (2) Server收到请求后:
    如果 Server ⽀持 keep-alive,回复⼀个包含 Connection:keep-
    alive 的响应,不关闭连接;
    如果 Server 不⽀持 keep-alive,回复⼀个包含 Connection:close
    的响应,关闭连接。
    (3) 如果client收到包含 Connection:keep-alive 的响应,向同⼀个连接
    发送下⼀个请求,直到⼀⽅主动关闭连接。
  3. Upgrade-Insecure-Requests(升级为HTTPS请求)
    Upgrade-Insecure-Requests:升级不安全的请求,意思是会在加载 http 资
    源时⾃动替换成 https 请求,让浏览器不再显示https⻚⾯中的http请求警报。
  4. User-Agent(浏览器名称)
    User-Agent:是客户浏览器的名称
  5. Accept(传输文件类型)
    Accept:指浏览器或其他客户端可以接受的MIME(Multipurpose Internet
    Mail Extensions(多⽤途互联⽹邮件扩展))⽂件类型,服务器可以根据它判
    断并返回适当的⽂件格式。
    Accept: /:表示什么都可以接收。
    Accept:image/gif:表明客户端希望接受GIF图像格式的资源;
    Accept:text/html:表明客户端希望接受html⽂本。
    Accept: text/html, application/xhtml+xml;q=0.9,
    image/*;q=0.8:表示浏览器⽀持的 MIME 类型分别是 html⽂本、xhtml和
    xml⽂档、所有的图像格式资源。
  6. Referer (页面跳转处)
    Referer:表明产⽣请求的⽹⻚来⾃于哪个URL,⽤户是从该 Referer⻚⾯访问
    到当前请求的⻚⾯。这个属性可以⽤来跟踪Web请求来⾃哪个⻚⾯,是从什么
    ⽹站来的等。
  7. Accept-Encoding(文件编解码格式)
    Accept-Encoding:指出浏览器可以接受的编码⽅式。编码⽅式不同于⽂件格
    式,它是为了压缩⽂件并加速⽂件传递速度。浏览器在接收到Web响应之后先
    解码,然后再检查⽂件格式,许多情形下这可以减少⼤量的下载时间。
  8. Accept-Language(语言种类)
    Accept-Langeuage:指出浏览器可以接受的语⾔种类,如en或en-us指英
    语,zh或者zh-cn指中⽂,当服务器能够提供⼀种以上的语⾔版本时要⽤到。
  9. Accept-Chaset(字符编码)
    Accept-Charset:指出浏览器可以接受的字符编码。
  10. Cookie(Cookie)
    Cookie:浏览器⽤这个属性向服务器发送Cookie。Cookie是在浏览器中寄存
    的⼩型数据体,它可以记载和服务器相关的⽤户信息
  11. Content-Type(POST数据类型)
    Content-Type:POST请求⾥⽤来表示的内容类型。

4-4. 服务端HTTP响应

四个组成部分: 状态行、消息报头、空行、响应正文

常见响应状态码:

代号 描述
100~199 表示服务器成功接收部分请求,要求客户端继续提交其余请求才能完成整个处理过程。
200~299 表示服务器成功接收请求并已完成整个处理过程。常⽤200(OK 请求成功)。
300~399 为完成请求,客户需进⼀步细化请求。例如:请求的资源已经移动⼀个新地址、常⽤302(所请求的⻚⾯已经临时转移⾄新的url)、307和304(使⽤缓存资源)。
400~499 客户端的请求有错误,常⽤404(服务器⽆法找到被请求的⻚⾯)、403(服务器拒绝访问,权限不够)。
500~599 服务器端出现错误,常⽤500(请求未完成。服务器遇到不可预知的情况)。
发布了27 篇原创文章 · 获赞 11 · 访问量 1501

猜你喜欢

转载自blog.csdn.net/weixin_45550881/article/details/103836148