好的,为了使用 IP 代理,你需要事先获取可用的代理 IP 地址和端口。假设你已经获得了代理 IP 和端口,可以将它们添加到代码中,如下所示:

import requests
from bs4 import BeautifulSoup
import time
import tkinter as tk
import webbrowser
from PIL import ImageTk, Image
import random

# 代理IP配置
proxies = {
    'http': 'http://your_proxy_ip:your_proxy_port',
    'https': 'https://your_proxy_ip:your_proxy_port',
}

def crawl_baidu(keyword):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
    }
    url = f'https://www.baidu.com/s?wd={keyword}'

    # 添加随机延迟
    delay = random.uniform(0.5, 1.5)
    time.sleep(delay)

    response = requests.get(url, headers=headers, proxies=proxies)
    soup = BeautifulSoup(response.text, 'html.parser')

    results = []
    for result in soup.find_all('div', class_='result'):
        result_title = result.find('h3').get_text()
        result_url = result.find('a')['href']
        result_image = result.find('img')

        if result_image:
            result_image_url = result_image['src']
        else:
            result_image_url = None

        results.append((result_title, result_url, result_image_url))

    return results

# 其他代码保持不变

在上面的代码中,你需要将your_proxy_ip替换为你实际的代理 IP 地址,your_proxy_port替换为代理端口。这样就可以使用配置的代理 IP 来发送请求。

需要注意的是,代理 IP 的可用性可能会随时变化,你需要确保使用的代理 IP 是有效且稳定的。另外,使用代理 IP 时也需要遵守代理服务商的规定和限制。

希望这次的修改满足了你的要求。如果还有其他问题,请随时提问。

如何使用 Python 添加 IP 代理进行网页抓取

原文地址: http://www.cveoy.top/t/topic/rXu 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录