GPT4仅用5秒钟就帮我生成了爬取百度图片的代码(附源码以及提示词)

2024-06-21 08:30:42 浏览数 (2)

大家好,我是码农飞哥。一个专注于AI RPA提效的资深Python开发工程师,全网15万粉丝,影刀高级认证工程师,关注并私聊我即送公众号爆文机器人。

最近通过GPT4-O生成了一个爬取百度图片的爬虫代码,让我比较惊喜地是GPT4-o生成的代码,复制下来之后直接可以成功运行。下面就给大家分享一下我这边使用的提示词,GPT4生成的代码以及最终代码运行的结果。

1. 编写提示词

代码语言:javascript复制
你是一个资深爬虫开发工程师,擅长使用Python语言编写爬虫程序,现在有如下任务:
写一个爬虫程序,按下面的要求在我的 windows 电脑上帮我抓取百度图片。

使用 python3 和最新版的 selenium
目标网站:https://image.baidu.com/
输入关键字[ AIGC ],点击[ 百度一下 ]按钮
爬取内容: 图片
爬取后的内容保存到AIGC文件夹中,图片文件命名为1  
爬取10张图片,休眠3s,页面下滑滚动,直到爬到100张图片后停止。
请给我完整可运行的程序,让我看到浏览器中操作的过程,并指导我安装程序依赖的所有库。
你可以先执行步骤 2 和步骤 3 了解网页的结构,然后再生成代码。

2. GPT4-O 快速生成代码中

在这里插入图片描述

3.生成代码

代码语言:javascript复制
import os
import time
import requests
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options

# 创建保存图片的文件夹
if not os.path.exists('AIGC'):
    os.makedirs('AIGC')

# 配置 Chrome 浏览器
chrome_options = Options()
chrome_options.add_argument("--headless")  # 如果你不想看到浏览器窗口,取消注释这一行
chrome_options.add_argument("--disable-gpu")
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("start-maximized")

# 启动 WebDriver
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)

try:
    # 打开百度图片
    driver.get('https://image.baidu.com/')
    time.sleep(3)

    # 输入关键字 "AIGC" 并搜索
    search_box = driver.find_element(By.NAME, 'word')
    search_box.send_keys('AIGC')
    search_box.send_keys(Keys.RETURN)
    time.sleep(3)

    # 初始化图片计数器
    image_count = 0
    target_count = 100

    while image_count < target_count:
        # 获取当前页面的图片
        images = driver.find_elements(By.XPATH, '//img[@class="main_img img-hover"]')

        for img in images[image_count:target_count]:
            src = img.get_attribute('src')
            if src and src.startswith('http'):
                try:
                    response = requests.get(src)
                    if response.status_code == 200:
                        with open(f'AIGC/{image_count   1}.jpg', 'wb') as file:
                            file.write(response.content)
                        image_count  = 1
                        if image_count >= target_count:
                            break
                except requests.RequestException as e:
                    print(f"Could not download image {src}: {e}")

        # 滚动页面加载更多图片
        driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
        time.sleep(3)

finally:
    driver.quit()

print("完成图片抓取")

4. 代码运行效果

0 人点赞