2.NetWork中各种信息的意思

分析页面:借助开发者工具(F12)

找规律,爬虫:模拟开发者工具鼠标点击html效果帮我们找到想要的文字**

1. Headers内容,让对方服务器接收到我们的请求时,可以了解我们是什么状态

General

Request URL: #请求路径
Request Method: OPTIONS #请求方法
Status Code: 200 #响应状态码,200表示请求成功

200(状态码) OK(原因短语)
301 - 资源(网页等)被永久转移到其它URL
404 - 请求的资源(网页等)不存在
500 - 内部服务器错误

Remote Address: 120.192.82.68:443 #远程(移动端)地址,端口和ip
Referrer Policy: strict-origin-when-cross-origin #引用站点策略

Response Headers
#响应标头,我们发给服务器的,告诉服务器返回给我们的内容应该适配什么条件

access-control-allow-headers: Range
#用于 preflight request (预检请求)中,列出了将会在正式请求的 Access-Control-Request-Headers 字段中出现的首部信息。
access-control-allow-methods: GET, OPTIONS
#在对 preflight request.(预检请求)的应答中明确了客户端所要访问的资源允许使用的方法或方法列表。

access-control-allow-origin: https://www.bilibili.com
#访问控制允许同源,这是由于ajax跨域访问引起的
#所谓跨域就是,在a.com域下,访问b.com域下的资源;出于安全的考虑,浏览器允许跨域写,而不允许跨域读,写就是上行,发送请求,send request,读就是下行,接受响应,receive response;

access-control-expose-headers: Content-Length, Content-Range, x-service-module
#列出了哪些首部可以作为响应的一部分暴露给外部。
默认情况下,只有七种 simple response headers (简单响应首部)可以暴露给外部

content-length: 0 # HTTP消息长度
content-type: video/mp4 #接收的返回的类型,服务端发送的文件类型及采用的编码方式
access-control-max-age: 21600
#这个响应头表示 preflight request (预检请求)的返回结果(即 Access-Control-Allow-Methods 和Access-Control-Allow-Headers 提供的信息) 可以被缓存多久。

alt-svc: h3-Q050=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-27=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-T050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000, quic=":443"; ma=2592000; v=“46,43” #替代服务,为了让服务器可以告诉客户端 “看,我在这个主机的这个端口用这个协议提供相同的服务” 而设计的

expires: -1 # 链接过期,-1不过期
date: Thu, 05 Nov 2020 07:24:49 GMT #客户端请求服务端的时间
server: openresty #服务器名标示自己用的是什么web服务器,一个成熟的网络平台
status: 200 #表示服务器成功处理了请求的状态代码
x-service-module: bvc-quic-server
Transfer-Encoding:chunked #分块传递数据到客户端

Request Headers
#请求标头

:authority: cn-sdjn2-cmcc-v-09.bilivideo.com # 请求的域名(对方的服务器地址)
:method: OPTIONS # 请求方法,一般浏览器访问网站使用GET请求

:path: /upgcxcode/22/01/167220122/167220122_nb2-1-30064.m4s? expires=1604568289&platform=pc&ssig=YotuN8CULI93G6pq2ij_WA&oi=1863431941&trid=ff4f8402c504405e8349fa87cc867884u&nfc=1&nfb=maPYqpoel5MI3qOUX6YpRA==&cdnid=6613&mid=479743063&orderid=0,3&agrr=1&logo=80000000 # 请求路径

:scheme: https # 请求的协议,这里使用https协议
accept: / # 请求文件类型
accept-encoding: gzip, deflate, br # 压缩类型,支援gzip,deflate,br 压缩方式
accept-language: zh-CN,zh;q=0.9 #客户端接收的语言类型
access-control-request-headers: range
access-control-request-method: GET
origin: https://www.bilibili.com
#Connection:keep-alive

#Cookie: #服务器为了能够标识每一个客户端,登录信息,行为信息,保存在本地的很多内容(内容是加密的)
#登陆以后才能看到的爬取,必须学会存储和读取cookie,如果没有Cookie网站会认为你没有登录

#param: # 缓存来源
referer: https://www.bilibili.com/
sec-fetch-dest: empty # sec-fetch-* 意为如何使用返回的参数
sec-fetch-mode: cors
sec-fetch-site: cross-site
user-agent(什么类型版本的游览器,可以接收什么水平的消息): Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36

有的时候还会出现下面信息
其实就是get请求中url后面要带的参数。
也就是说,向对应网址服务器传递这些参数就可以获得请求的内容,属于爬虫的基础知识。

Query String Parameters
expires: 1604568289
platform: pc
ssig: YotuN8CULI93G6pq2ij_WA
oi: 1863431941
trid: ff4f8402c504405e8349fa87cc867884u
nfc: 1
nfb: maPYqpoel5MI3qOUX6YpRA==
cdnid: 6613
mid: 479743063
orderid: 0,3
agrr: 1
logo: 80000000
‘’’
如,根据上面内容,可以这么传递参数

data={
    'expires':1604568289,
    'platform':'pc',
    ……
}
 
url='http……………………/?'+urlencode(data)#将字典对象转化为url的请求参数
response=requests.get(url)

不同时间发送的请求不同

不同时间发送的请求不同

当前鼠标悬停位置的层级

当前鼠标悬停位置的层级

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值