【js逆向】请求头

1、cookie

1.1 概述

首先, cookie就是保存在客户端(浏览器)上的一个字符串. 在每次发送请求时, 浏览器会自动的带上cookie的信息传递给服务器.

尤其在用户登录后, 为了能准确的获取到用户登录信息. cookie一般都会在请求是跟随请求头一起提交到服务器.

【js逆向】请求头_第1张图片

1.2 session

1.2.1 作用

保存登录状态

它能自动帮我们管理和维护cookie.

注意: 它能自动维护的只能是响应头返回的cookie. js动态添加的cookie. 它可管不了.

1.2.2 使用

import requests

# 1.创建一个session
session = requests.session()

# 2.可以提前给session设置好请求头或者cookie
session.headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36"
}

# 可用, 可不用
# session.cookies = {
#     # 可以把一些cookie的内容塞进来, 这里要的是字典
# }

# 3. 发请求

# 登录
url = "https://passport.xxx.com/ck/user/login"
data = {
    "loginName": "xxxxxx",
    "password": "xxxxxxx",
}
# requests.post(url, data=data)
# https 证书异常, 在请求参数中添加verify=False
session.post(url, verify=False, data=data)  # resp.header set-cookie
# javascript不管

# 后续的所有请求. 都会带着cookie
url = "https://user.xxx.com/ck/author/shelf?page=1&appKey=2406394919"
resp_2 = session.get(url)
# print(resp_2.text)

# 保持会话 -> session

2、防盗链

采用Referer 设置本次url来源,

headers = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36",
    # 防盗链,意义:本次请求是由哪个url产生的
    "Referer": url  

3、代理

3.1代理原理

        当我们反复抓取一个网站时, 由于请求过于频繁, 服务器很可能会将你的IP进行封锁来反爬. 应对方案就是通过网络代理的形式进行伪装.

        从图可以得知. 对于目标网站来说. 是通过代理服务器发送的请求. 也就可以避免你的IP被封锁了.

【js逆向】请求头_第2张图片

3.2 使用代码

import requests

headers = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36",
}
proxies = {
    "http": "http://223.96.90.216:8085"
}

resp = requests.get("http://www.baidu.com/s?ie=UTF-8&wd=ip", headers=headers, proxies=proxies)
resp.encoding="utf-8"
print(resp.text)

你可能感兴趣的:(爬虫专栏,开发语言)