当前位置 博文首页 > python爬虫设置每个代理ip的简单方法

    python爬虫设置每个代理ip的简单方法

    作者:饮醉不止马匹 时间:2021-09-17 18:27

    python爬虫设置每个代理ip的方法:

    1.添加一段代码,设置代理,每隔一段时间换一个代理。

    urllib2 默认会使用环境变量 http_proxy 来设置 HTTP Proxy。假如一个网站它会检测某一段时间某个 IP 的访问次数,如果访问次数过多,它会禁止你的访问。所以你可以设置一些代理服务器来帮助你做工作,每隔一段时间换一个代理,网站君都不知道是谁在捣鬼了,这酸爽! 下面一段代码说明了代理的设置用法。

    import urllib2
    enable_proxy = True
    proxy_handler = urllib2.ProxyHandler({"http" : 'http://some-proxy.com:8080'})
    null_proxy_handler = urllib2.ProxyHandler({})
    if enable_proxy:
        opener = urllib2.build_opener(proxy_handler)
    else:
        opener = urllib2.build_opener(null_proxy_handler)
    urllib2.install_opener(opener)

    2.Timeout 设置,可以解决一些网站出现响应过慢而造成的影响问题。

    之前已经说过urlopen 方法了,第三个参数就是 timeout 的设置,可以设置等待多久超时,为了解决一些网站实在响应过慢而造成的影响。 例如下面的代码,如果第二个参数 data 为空那么要特别指定是 timeout 是多少,写明形参,如果 data 已经传入,则不必声明。

    import urllib2
    response = urllib2.urlopen('http://www.baidu.com', timeout=10)
    import urllib2
    response = urllib2.urlopen('http://www.baidu.com',data, 10)

    不过,地址代理方面用的较为多,所以要着重学习。如果需要用的ip可以试试太阳http,爬虫采集、营销推广、工作室等行业首选的IP产品,全国城市线路数量200+,API调用频率不限制,不限并发,24小时不断更新IP池。

    知识点扩展:

    代码扩展:

    from bs4 import BeautifulSoup
    import requests
    import random
    
    def get_ip_list(url, headers):
     web_data = requests.get(url, headers=headers)
     soup = BeautifulSoup(web_data.text, 'lxml')
     ips = soup.find_all('tr')
     ip_list = []
     for i in range(1, len(ips)):
      ip_info = ips[i]
      tds = ip_info.find_all('td')
      ip_list.append(tds[1].text + ':' + tds[2].text)
     return ip_list
    
    def get_random_ip(ip_list):
     proxy_list = []
     for ip in ip_list:
      proxy_list.append('http://' + ip)
     proxy_ip = random.choice(proxy_list)
     proxies = {'http': proxy_ip}
     return proxies
    
    if __name__ == '__main__':
     url = 'http://www.xicidaili.com/nn/'
     headers = {
     'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.60 Safari/537.17'
     }
     ip_list = get_ip_list(url, headers=headers)
     proxies = get_random_ip(ip_list)
     print(proxies)
    jsjbwy
    下一篇:没有了