大家好,我是码农飞哥。一个专注于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("完成图片抓取")