一、背景介绍:为什么要爬取 Pexels 的图片?
想象一下,你正在做一份与鲜花相关的 PPT,或者你是一名电商运营,需要一批精美的花卉图片来装点你的商品页面。然而,每次手动去 Pexels 找图、下载、整理,简直太费时间了!🙄 有没有办法用 Python 实现自动下载呢?当然有!
今天我们就来聊聊如何使用 playwright
,一个强大的 Python 爬虫库,来批量爬取 Pexels 网站上关于鲜花的高清图片,让你的办公效率直接起飞 🚀。
二、技术方案:用 playwright
自动化浏览器操作
在开始编码之前,我们需要明确这次爬取的核心目标:
- 访问 Pexels 网站(
https://www.pexels.com/zh-cn/
)。 - 接受 Cookie 授权,确保正常浏览。
- 搜索“鲜花”关键词,获取相关图片。
- 获取图片的下载链接,并自动保存。
- 避免反爬,模拟用户浏览行为。
1. 安装 playwright
如果你还没有安装 playwright
,先执行以下命令:
pip install playwright
playwright install # 安装浏览器内核
💡 为什么选 playwright
?
- 支持多种浏览器(Chromium、Firefox、WebKit)。
- 可以无头模式运行,避免占用屏幕。
- 操作 API 直观,可以像用户一样点击、输入、滚动。
三、代码实现:自动爬取 Pexels 的鲜花图片
1. 启动浏览器并访问 Pexels
我们先写一个简单的代码,让 playwright
自动打开 Pexels 网站,接受 Cookie 并搜索“鲜花”。
from playwright.sync_api import sync_playwright
def open_pexels():
with sync_playwright() as p:
browser = p.chromium.launch(headless=False) # 先开启可视化模式,调试方便
page = browser.new_page()
page.goto("https://www.pexels.com/zh-cn/search/鲜花/") #search后面的内容为搜索内容
# 接受 Cookie
if page.query_selector("button:has-text('接受所有')"):
page.click("button:has-text('接受所有')")
# 等待搜索结果加载
page.wait_for_load_state("networkidle")
print("搜索完成!")
browser.close()
open_pexels()
运行代码后,浏览器会自动打开 Pexels 搜索“鲜花”页面,接受 Cookie 然后开始爬取图片内容。
2. 获取图片链接并下载
接下来,我们提取页面上的图片地址,并自动下载。
import os
import requests
from playwright.sync_api import sync_playwright
def download_images():
with sync_playwright() as p:
browser = p.chromium.launch(headless=False) # 设为无头模式
page = browser.new_page()
page.goto("https://www.pexels.com/zh-cn/search/鲜花/")
# 接受 Cookie
if page.query_selector("button:has-text('接受所有')"):
page.click("button:has-text('接受所有')")
# 等待图片加载
page.wait_for_selector("