使用Python代理IP爬虫主要涉及到两个库:requests
和randomuseragent
。首先,确保已经安装了这两个库。如果没有安装,可以使用以下命令安装:
pip install requests pip install randomuseragent
接下来,我们将创建一个简单的Python代理IP爬虫。这个爬虫将从给定的URL列表中抓取网页内容,并使用随机User-Agent和代理IP来避免被目标网站封禁。
import requests from randomuseragent import UserAgent # 代理IP池 proxies = [ {'http': 'http://proxy_ip:port'}, {'http': 'http://another_proxy_ip:port'}, # 更多代理IP... ] # User-Agent列表 user_agents = [ 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0', # 更多User-Agent... ] def get_proxy(): return random.choice(proxies) def get_user_agent(): return random.choice(user_agents) def fetch_url(url): proxy = get_proxy() user_agent = get_user_agent() headers = { 'User-Agent': user_agent } try: response = requests.get(url, headers=headers, proxies=proxy, timeout=5) response.raise_for_status() return response.text except requests.exceptions.RequestException as e: print(f"Error fetching {url}: {e}") return None def main(): urls = [ 'https://www.example.com', 'https://www.example2.com', # 更多URL... ] for url in urls: content = fetch_url(url) if content: print(f"Fetched content from {url}") # 在这里处理网页内容,例如保存到文件、解析数据等 if __name__ == "__main__": main()
请注意,你需要将proxies
列表中的proxy_ip
和port
替换为实际的代理IP和端口。同样,你可以根据需要扩展user_agents
列表。
这个示例代码定义了三个函数:get_proxy()
用于从代理IP池中随机选择一个代理IP,get_user_agent()
用于从User-Agent列表中随机选择一个User-Agent,fetch_url(url)
用于根据给定的URL抓取网页内容。在main()
函数中,我们定义了一个URL列表,并使用fetch_url()
函数逐个抓取这些URL的内容。你可以根据需要处理抓取到的网页内容,例如保存到文件、解析数据等。