栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

爬虫中的TCP请求自动切换ip

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

爬虫中的TCP请求自动切换ip

作为爬虫工作者,在日常采集数据的过程中我们会遇到需要使用tcp请求,并且每个TCP请求自动切换ip,意思是指爬虫代理为爬虫程序发出的每个TCP请求随机提供一个代理IP,同一个TCP会话中IP不变。在遇到需要这样的情况下我们可以通过设置Proxy-Connection: Keep-Alive或Connection: Keep-Alive可以保持同一个Session代理IP不变。

在目标网站需要登录,获取数据的两个请求在一个IP下,只需保证该组请求在一个TCP(Keep-Alive)会话下, 该组请求在代理有效期内使用相同的代理IP。代码参考如下:

#! -*- encoding:utf-8 -*-  
  import requests 
  import random 
  import requests.adapters
  # 要访问的目标页面  
  targetUrlList = [        "https://httpbin.org/ip",  
  "https://httpbin.org/headers",  
  "https://httpbin.org/user-agent",    ] 
   # 代理服务器(产品官网 www.16yun.cn)   
  proxyHost = "t.16yun.cn"  
  proxyPort = "31111"   
  # 代理验证信息   
  proxyUser = "username"   
   proxyPass = "password"
  proxymeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {     "host": proxyHost,        "port": proxyPort,       
 "user": proxyUser,        "pass": proxyPass,    } 
  # 设置 http和https访问都是用HTTP代理   
  proxies = {        "http": proxymeta,  
   "https": proxymeta,    }
   # 访问三次网站,使用相同的Session(keep-alive),
    均能够保持相同的外网IP   
     s = requests.session()  
   # 设置cookie    # cookie_dict = {"JSESSION":"123456789"} 
    # cookies = requests.utils.cookiejar_from_dict(cookie_dict, 
    cookiejar=None, overwrite=True)   
     # s.cookies = cookies   
      for i in range(3):   
       for url in targetUrlList:  
       r = s.get(url, 
        proxies=proxies)  
         print r.text


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/219528.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号