You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法解析Pinterest:爬虫获取无效链接而非图片链接的技术问题

解决Pinterest爬取无法获取图片链接的问题

问题原因

Pinterest是基于JavaScript的单页应用,直接用requests请求只能拿到页面的初始HTML骨架,所有图片、动态内容都是浏览器加载后通过JS渲染生成的。另外Pinterest有反爬机制,未模拟真实浏览器的请求会被限制,返回的内容并非实际页面数据,导致你拿到的是无效链接。

解决方案

使用能渲染JavaScript的工具(如Selenium)模拟浏览器加载页面,同时设置合理的请求头规避反爬,最后定位正确的图片元素提取链接。

步骤1:安装依赖

执行以下命令安装所需库:

pip install selenium webdriver-manager

步骤2:修改后的爬取代码

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from bs4 import BeautifulSoup

def parse_pinterest():
    # 配置Chrome浏览器选项
    options = webdriver.ChromeOptions()
    options.add_argument("--headless=new")  # 无头模式,不显示浏览器窗口
    options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36")
    
    # 初始化浏览器
    driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
    driver.get("https://www.pinterest.ie/")
    
    # 等待页面动态内容加载完成
    driver.implicitly_wait(10)
    
    # 获取渲染后的完整页面源码
    page_source = driver.page_source
    soup = BeautifulSoup(page_source, 'lxml')
    
    # 定位图片元素(Pinterest图片通常带有data-test-id="pin-image"标识)
    images = soup.find_all('img', attrs={'data-test-id': 'pin-image'})
    for img in images:
        # 提取图片链接,优先取data-src(懒加载属性),没有则取src
        img_url = img.get('data-src') or img.get('src')
        if img_url:
            print(img_url)
    
    # 关闭浏览器
    driver.quit()

parse_pinterest()

注意事项

  • 不要短时间内频繁请求,可添加time.sleep()控制请求间隔,避免IP被封禁
  • 若页面结构变化,需检查并更新图片元素的选择器
  • 可配合代理IP使用,进一步降低被反爬识别的概率

内容的提问来源于stack exchange,提问作者Александр Кузнецов

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 09:45:41