爬虫--模拟登录代理IP
免责声明:本文仅做分享...
目录
模拟登录
方法1--POST表单传递
代理ip
介绍
使用
模拟登录
方法1--POST表单传递
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/120.0.0.0 Safari/537.36',
}import requests
login_url = 'https://ptlogin.4399.com/ptlogin/login.do?v=1'# 表单参数data = {'password':'a12323', # 并不是所有的网站密码直接传明文就可以'username':'3073821018',
}# 对登录url发请求login_res = requests.post(login_url,headers=headers,data=data)
方法2--cookie时效性
import requests
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/120.0.0.0 Safari/537.36',# cookie中是保存了已登录用户的身份信息,所以直接发请求是可以的'Cookie':'Puser=3073859018; Qnick=; UM_distinctid=18b41dd25cf76d-0699c31a284a4e26031151-1fa400-18b41dd25d0fd0;_4399tongji_vid=169761709622028;
_4399stats_vid=16976170963161277; _gprp_c=""; home4399=yes;
Hm_lvt_334aca66d28b3b338a76075366b2b9e8=1701753391,1703593180; _4399tongji_st=1703593189;
Hm_lvt_e5a07b5994f78634294b9c347a5be7d2=1701753399,1703593190;
Hm_lvt_5c9e5e1fa99c3821422...xxxxE%E5%B7%A7%E5%AE%89%E6%9B%BC%E5%A6%AE'}url = 'https://my.4399.com/forums/index-getMtags?type=game&page=1'# 发群组请求的时候,携带cookie身份res = requests.get(url,headers=headers)# # 设置响应编码res.encoding='utf-8'print(res.text)
方法3--session自动处理cookie
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/120.0.0.0 Safari/537.36',
}import requests
login_url = 'https://ptlogin.4399.com/ptlogin/login.do?v=1'# 表单参数data = {'password':'xxxx', # 并不是所有的网站密码直接传明文就可以'username':'3073851118',
}# 获取session对象session = requests.Session()# session中已经保存了cookie信息login_res = session.post(login_url,data=data,headers=headers)url = 'https://my.4399.com/forums/index-getMtags?type=game&page=1'# 发群组请求的时候,携带cookie身份res = session.get(url,headers=headers)# # 设置响应编码res.encoding='utf-8'print(res.text)
代理ip
介绍
代理:在爬虫中,代理指的是代理服务器
代理服务器作用:用来转发请求和响应
为什么要使用代理服务器呢?如果爬虫在短时间内对服务器发起了高频率的请求,那么服务器会检测到异常的请求可能会对请求对应设备ip禁掉,就意味着客户端设备无法对服务器端再次请求拿到数据如果使用代理之后,服务器端接收到的请求ip是?代理服务器的代理服务器分为了不同的匿名度:透明代理:服务端知道你使用了代理机制,也知道你的ip匿名代理:服务端知道你使用了代理机制,不知道客户端的真实ip高匿代理:服务端不知道你使用了代理,也不知道你的真实ip
更换代理的目的是如果你的本机ip不能访问到数据了,那代理ip是没有被封掉的,所以可以换个ip去访问
芝麻代理 西刺代理 智联 阿布云 青果 携趣
....
使用
import requests
ip_url = 'http://api.xiequ.cn/VAD/GetIp.aspx?
act=get&uid=129821&vkey=81CEACF9CEE016227FC3FF79455E346A&num=1&time=30&plat=1&re=0&type=0&s
o=1&ow=1&spl=1&addr=&db=1'# 对ip_url 发起请求 得到代理ipip_res = requests.get(ip_url)# 生成一个ip地址:端口url = 'https://httpbin.org/get' # 验证代理ip是否成功headers = {'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/126.0.0.0 Safari/537.36"}# proxies在请求的过程中加入proxies参数,代表使用代理进行请求proxies = {'http': f'{ip_res.text}','https': f'{ip_res.text}'}res = requests.get(url, headers=headers, proxies=proxies)print(res.text)# 175.11.188.69真实ip 120.34.91.211代理ip