三、模拟登录Cookie、代理理论
1、Cookie模拟登录:
1.1 Http/Https请求协议:
无状态,没有请求到页面数据的原因:
发起的第二次基于个人主页页面请求的时候,服务器端并不知道此请求是基于登录状态下的请求。
1.2 Cookie:
用来让服务器端记录客户端的相关状态
处理方式:
(1). 手动处理:通过抓包工具获取到cookie值,将该值封装到headers中。(不建议)
(2). 自动处理 :
---- cookie值的来源是哪里?
---- 模拟登录post请求后,由服务器端创建。
---- session会话对象:
---- 作用:
1.可以进行请求的发送;
2.如果请求过程中产生了cookie,则该cookie会被自动存储/携带在该session对象中。
---- 创建一个session对象;session= requests.Session()
---- 使用session对象进行模拟登录post请求的发送 (cookie会被自动存储在session中)
---- session对象对个人主页对应的get请求进行发送(携带了cookie)
2、代理理论:
2.1 目的:
代理:破解封存IP这种反爬机制;
代理的作用:突破自身IP访问的限制;隐藏自身真实IP
2.2 代理ip的类型:
http:应用到http协议对应的url中;
https:应用到https协议对应的url中;
2.3 代理ip的匿名度:
2.4 使用方法:
在发送post/get 请求时加上 proxies={"key","value"};key为协议类型(两种),value为代理ip的值
全网代理IP: http://www.goubanjia.com/
import requests
if __name__ == '__main__':
url='https://www.baidu.com/s?ie=UTF-8&wd=ip'
headers={
"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'
}
response=requests.get(url=url,headers=headers,proxies={"https":'175.42.68.236:9999'}).text
with open('./proxy.html','w',encoding='utf-8') as fp:
fp.write(response)