python

python代理ip爬虫怎么用

小樊
81
2024-12-03 15:44:25
栏目: 编程语言

使用Python代理IP爬虫主要涉及到两个库:requestsrandomuseragent。首先,确保已经安装了这两个库。如果没有安装,可以使用以下命令安装:

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_ipport替换为实际的代理IP和端口。同样,你可以根据需要扩展user_agents列表。

这个示例代码定义了三个函数:get_proxy()用于从代理IP池中随机选择一个代理IP,get_user_agent()用于从User-Agent列表中随机选择一个User-Agent,fetch_url(url)用于根据给定的URL抓取网页内容。在main()函数中,我们定义了一个URL列表,并使用fetch_url()函数逐个抓取这些URL的内容。你可以根据需要处理抓取到的网页内容,例如保存到文件、解析数据等。

0
看了该问题的人还看了