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

使用Selenium无法解析Behance动态内容,无法获取目标JPG图片求助

解决Behance动态内容爬取问题

1. 给Selenium配置反爬规避项

Behance能识别默认的ChromeDriver,得改配置模拟正常浏览器:

System.setProperty("webdriver.chrome.driver", "S:\\behance-id\\src\\main\\resources\\chromedriver.exe");

ChromeOptions options = new ChromeOptions();
// 关闭自动化检测标记
options.addArguments("--disable-blink-features=AutomationControlled");
// 设置正常的用户代理
options.addArguments("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");
// 如需后台运行,启用无头模式
options.addArguments("--headless=new");

WebDriver driver = new ChromeDriver(options);
driver.get("https://www.behance.net/gallery/148589707/Hercules-and-Randy");

// 必须等待页面动态内容加载完成,比如等待目标图片元素出现
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("img[src$='.jpg']")));

String str = driver.getPageSource();
// 后续即可解析源码提取图片链接

2. 务必等待动态内容渲染完毕

你之前直接获取pageSource的时机过早,此时JS还未完成图片等内容的渲染,必须通过显式等待指定元素出现后,再去获取页面源码。

3. 直接调用Behance API更高效

Behance的内容都是通过API接口加载的,打开Chrome开发者工具的Network面板,筛选XHR类型请求,就能找到对应画廊的内容接口。比如类似https://www.behance.net/v2/galleries/148589707的接口,请求后返回的JSON数据中,covers或modules字段里就包含JPG图片的链接。使用OkHttp或Java自带的HttpClient直接请求该接口,比模拟浏览器更高效,也更难触发反爬机制。

注意:请遵守Behance的服务条款,不要频繁发起请求,避免IP被封禁。

4. 检查是否存在登录限制

部分画廊内容可能需要登录才能访问,若遇到这种情况,可通过Selenium模拟登录流程,或者将浏览器中的Cookie复制到请求头中(API请求方式),确保能获取到完整内容。

内容的提问来源于stack exchange,提问作者fujidaon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 17:45:34