前言
代理IP是指由其他人提供的用于代替本机IP进行访问的IP地址。本文将介绍如何自动获取、验证和使用代理IP。
获取代理IP
获取代理IP有多种方法,可以通过付费购买、免费获取以及使用代理IP池等。在这里,我们以使用免费代理IP网站进行获取为例。
使用requests库获取代理IP网页内容:
import requests def get_proxy_list(url): response = requests.get(url) if response.status_code == 200: return response.text else: return None url = 'https://www.zdaye.com/' proxy_list = get_proxy_list(url) ``` 2. 解析网页内容提取代理IP: ```python import json def parse_proxy_list(proxy_list): proxy_list = json.loads(proxy_list) proxies = [] for proxy in proxy_list.get('data'): proxies.append(proxy.get('ip') + ':' + str(proxy.get('port'))) return proxies proxies = parse_proxy_list(proxy_list)
验证代理IP
获取到的代理IP并不一定都是可用的,我们需要对其进行验证,以确保其有效性。
使用requests库验证代理IP:
def verify_proxy(proxy): proxies = { 'http': 'http://' + proxy, 'https': 'https://' + proxy } try: response = requests.get('https://www.baidu.com', proxies=proxies, timeout=10) if response.status_code == 200: print('Valid Proxy:', proxy) return True else: print('Invalid Proxy:', proxy) return False except: print('Invalid Proxy:', proxy) return False valid_proxies = [] for proxy in proxies: if verify_proxy(proxy): valid_proxies.append(proxy)
使用代理IP
获取到有效的代理IP后。
使用requests库设置代理IP:
def crawl_with_proxy(url, proxy): proxies = { 'http': 'http://' + proxy, 'https': 'https://' + proxy } try: response = requests.get(url, proxies=proxies, timeout=10) if response.status_code == 200: return response.text else: return None except: return None url = 'https://www.baidu.com' for proxy in valid_proxies: result = crawl_with_proxy(url, proxy) if result: # 处理爬取结果 break
总结
通过以上步骤,我们可以自动获取、验证和使用代理IP。获取代理IP后,需要进行验证,将有效的代理IP应用于操作中,以实现规避IP限制的目的。