最近在爬一个网站,发现被远程服务端直接关闭连接了
我不清楚他是可以拿到我真实IP么?我挂梯子用了代理也不行
挂代理能跑一会儿,但是还是会断开,明显没有第一次爬的数据多,应该不是他们跑新增了某些机制,而是触发了已有的防爬机制
爬虫反爬一般都会对ip有限制,比如rate limit; 可以找一下代理池,自动切换IP可以解决这种问题
看到过简单粗暴的处理:不管是不是真实IP,一段时间内,同一个IP访问超过一定频率,就判定为爬虫
有尝试过,是指这样么?
ip_list = [
"61.147.115.133:1080",
"42.49.148.167:9001",
"111.8.155.54:7777",
"110.167.201.197:1080",
"120.253.8.42:7302",
"8.142.3.145:3306",
"223.112.53.2:1025",
"112.26.210.141:7302",
"61.178.94.23:7302",
"120.198.145.18:7302",
"121.13.251.112:7302",
"39.101.65.228:8082",
"8.130.34.237:8000",
"8.130.34.237:50001",
"39.101.65.228:81",
"8.130.34.44:2121",
"8.130.34.44:5555",
"8.130.36.245:6000",
"139.198.120.15:29527",
"114.236.93.203:15599",
"58.222.132.164:7300",
"139.198.29.235:3128",
"61.164.246.37:19459",
"221.224.44.91:7302",
"36.111.191.127:1080",
"8.130.36.245:5555",
"49.235.84.38:4399",
"61.173.31.173:1080"
]
# 创建IP池
ip_pool = IPPool(ip_list)
ip = ip_pool.get_ip() # 从IP池中获取IP
ip_res = requests.get('https://share.proxy.qg.net/pool?key=799DA40D&num=1&area=&isp=0&format=txt&seq=\r\n&distinct=false')
ip = str(ip_res.text.strip())
proxies = {
http': f'http://{ip}',
https': f'http://{ip}' # 如果需要,可以分别设置http和https的代理
}
res_data = requests.get(url, headers={'User-Agent': user_agent}, proxies = proxies, cookies=cookie_jar, verify=False).json()
我看你传了cookie,这感觉可能是根据cookie封的
我很确信不是通过cookie封的,在使用这个cookie被封的同时,我网页端也在访问中,是一直正常使用的
反爬的情况很复杂 任何细节都有可能会 最常见的就是IP 访问频次 UA header cookie 还有可能你用的requests库特征直接被人家反了