【 Selenium 爬蟲】2025年8月25日-pixabay 圖片采集

無惡意采集,取部分圖片用來做相冊測試的😄

效果圖
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.la.selenium.utils.SeleniumUtil;
import lombok.extern.slf4j.Slf4j;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;/*** 功能描述** @author jason*/
@Slf4j
public class ImageSpider {private static String url;private static final String imagePath = "/data/pixabay/photos/image_url.txt";public static void main(String[] args) {// String url = "https://pixabay.com/zh/illustrations/search/?order=ec";// String url = "https://pixabay.com/zh/illustrations/search/?order=ec&pagi=2";String urlTemplate = "https://pixabay.com/zh/photos/search/?order=ec&pagi={page}";FileUtil.writeUtf8String("", imagePath);SeleniumUtil.exec((webDriver) -> {for (int i = 1; i <= 100; i++) {int finalI = i;url = StrUtil.format(urlTemplate, new HashMap<String, Object>() {{put("page", finalI);}});if (i == 1) {url = StrUtil.replace(url, "&pagi=1", "");}List<String> imageList = spiderImage(webDriver, url);FileUtil.appendUtf8Lines(imageList, imagePath);}});log.info("采集完成");}public static List<String> spiderImage(WebDriver driver, String url) {driver.get(url);WebDriverWait wait = new WebDriverWait(driver, 10);By locator = By.xpath("//*[@id=\"app\"]/div[1]/div/div[2]/div[2]/div/div");wait.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(locator));//            String pageSource = driver.getPageSource();
//            System.out.println(pageSource);WebElement webElement1 = driver.findElement(locator);List<WebElement> webElement2 = webElement1.findElements(By.className("column--HhhwH"));List<String> imageList = new ArrayList<>();webElement2.forEach(webElement3 -> {List<WebElement> webElement4 = webElement3.findElements(By.className("cell--UMz-x"));webElement4.forEach(webElement5 -> {String webElement5Html = webElement5.getAttribute("outerHTML");// 獲取里面的 JSON 字符串Document doc = Jsoup.parse(webElement5Html);Elements scriptElements = doc.select("script[type=application/ld+json]");String scriptJson = scriptElements.first().html();// 獲取 contentUrlString contentUrl = JSONUtil.parseObj(scriptJson).getStr("contentUrl");log.info("采集鏈接:{}", contentUrl);imageList.add(contentUrl);});});return imageList;}}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/95550.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/95550.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/95550.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

服務器托管需要注意什么事項?

服務器托管是企業IT基礎設施的關鍵環節&#xff0c;其穩定性和安全性直接影響業務連續性。需要注意下面這幾點&#xff01; 一、服務商與機房選擇 服務商資質 選擇持有ISP證書的合法服務商&#xff0c;優先考慮運營超5年、市場口碑佳的老牌公司&#xff0c;技術團隊需具備72…

微信小程序備忘

1.按鈕事件中想切換到tabBar中的鏈接用switchTab&#xff0c;不能用navigateTo&#xff1a;agentPage: function() { wx.switchTab({url: /pages/agent/agent}) },特別注意&#xff1a;微信小程序中所謂的自定義&#xff0c;并不是完全的自定義&#xff0c;在app.json中定義&a…

虛擬機NAT模式通過宿主機(Windows)上網不穩定解決辦法(無法上網)(將宿主機設置固定ip并配置dns)

文章目錄問題描述解決辦法分析**1. 問題的根本原因****(1) 宿主機動態IP的DNS配置問題****(2) NAT模式下的網絡依賴****(3) 自習室WiFi的潛在限制****2. 用戶操作的合理性分析****(1) 固定IP的作用****(2) 手動指定公共DNS的作用****3. 用戶懷疑的正確性****4. 其他可能原因的排…

基于 HTML、CSS 和 JavaScript 的智能圖像虛化系統

目錄 1 前言 2 技術實現 2.1 HTML&#xff1a;搭建頁面基礎結構 2.2 CSS&#xff1a;打造科技感視覺體驗 2.3 JavaScript&#xff1a;實現核心虛化功能 2.3.1 圖像上傳與初始化 2.3.2 實時虛化處理 2.3.3 圖像下載功能 3 完整代碼 4 運行結果 5 總結 1 前言 三大核…

PS更改圖像尺寸

新建文檔 1.左上角——新文件可以新建文檔2.文件——新建文檔3.快捷鍵CtrlN 對文件命名 輸入新文件名稱設置寬度和高度 設置文件的寬高&#xff0c;單位可以是像素、英寸、厘米等。還可以選擇文件方向或者是否使用畫板模式畫布背景色 一般顯示白色&#xff0c;也可以選擇其他顏…

分詞器詳解(一)

文章目錄&#x1f31f; 第0層&#xff1a;極簡版&#xff08;30秒理解&#xff09;核心公式生活比喻&#x1f4da; 第1層&#xff1a;基礎概念&#xff08;5分鐘理解&#xff09;1. 分詞器基礎1.1 分詞器的核心作用1.2 主流分詞算法對比2. 基礎實現2.1 BPE實現原理2.2 特殊標記…

推薦一個論文閱讀工具ivySCI

1.一些關于ivySCI的數據 &#xff08;摘自&#xff1a;吳焱紅&#xff0c;論文示范:ivySCI 在論文管理、閱讀和筆記中的體驗&#xff09; 1.科研人員花在文獻閱讀上的時間占總工作時間的 23%2.每年閱讀的文獻數量大概是 188 到 280 篇3.ivySCI 提供 Pad(iPad 和 Android) 和桌…

診斷服務器(Diagnostic Server)

在《SWS_Diagnostics.pdf》中,診斷服務器(Diagnostic Server) 是診斷管理(DM)的核心執行單元,聚焦 “軟件集群(SoftwareCluster)級診斷資源的獨立管控”,實現 UDS(ISO 14229-1)與 SOVD(ASAM 服務化診斷)的全流程診斷功能。以下結合文檔 7.3 節 “Diagnostic Serve…

如何開發一款高穩定、低延遲、功能全面的RTSP播放器?

一、引言&#xff1a;RTSP的價值與挑戰 RTSP&#xff08;Real-Time Streaming Protocol&#xff09;作為實時流媒體傳輸的核心協議&#xff0c;廣泛應用于安防監控、無人機回傳、教育互動、遠程醫療、單兵指揮等行業。它提供了 基于請求/響應機制的流媒體控制能力&#xff0c;…

數據結構——樹(03二叉樹,與路徑有關的問題,代碼練習)

文章目錄一、求二叉樹的值【層序遍歷實現】1.1右視圖1.2層最大值1.3層和1.4最底層的葉子結點的和1.5層平均值1.6最大層和的層號二、二叉樹的路徑2.1根節點到葉子節點&#xff0c;二叉樹的路徑2.2路徑的十進制之和 & 二進制之和2.3二叉樹里的路徑三、二叉樹的路徑23.1最長同…

Git配置:禁用全局HTTPS驗證

文章目錄Git配置&#xff1a;禁用全局HTTPS驗證什么是HTTPS驗證&#xff1f;為什么需要禁用HTTPS驗證&#xff1f;如何禁用全局HTTPS驗證&#xff1f;注意事項結論Git配置&#xff1a;禁用全局HTTPS驗證 在軟件開發和版本控制中&#xff0c;Git是一個不可或缺的工具。它幫助開…

【54頁PPT】基于DeepSeek的數據治理技術(附下載方式)

篇幅所限&#xff0c;本文只提供部分資料內容&#xff0c;完整資料請看下面鏈接 https://download.csdn.net/download/2501_92796370/91778320 資料解讀&#xff1a;《基于DeepSeek的數據治理技術》 詳細資料請看本解讀文章的最后內容。 作為數據治理領域的資深研究者&#…

2025年最新 unityHub游戲引擎開發2d手機游戲和桌面游戲教程

設置開發編輯器 &#xff1a; 以下是一個簡化版的移動控制代碼&#xff0c;不依賴自定義輸入配置&#xff0c;直接使用 Unity 新輸入系統的默認綁定&#xff0c;并兼容手機端的 Joystick Pack 虛擬搖桿&#xff1a; SimplePlayerMovement using UnityEngine; using UnityEngi…

SuperMap GIS基礎產品FAQ集錦(20250901)

一、SuperMap iDesktopX 問題1&#xff1a;咨詢MapGIS數據遷移功能是否支持MapGIS 10版本&#xff0c;在遷移10版本的符號庫時卡在0%并報錯“升級6x系統庫失敗”。 11.3.0【問題原因】客戶使用問題&#xff0c;mapgis6.7里面工程文件和符號庫之前沒有綁定關系&#xff0c;mapgi…

react-native-reanimated-carousel的API記錄

?核心屬性??data?類型: Array<any>必填&#xff0c;輪播數據源&#xff0c;支持任意類型數據。?renderItem?類型: ({ item, index }) > React.ReactNode必填&#xff0c;自定義卡片渲染函數&#xff0c;參數包含當前項和索引。?width/height?類型: number控制…

TypeScript 泛型入門(新手友好、完整詳解)

目標讀者&#xff1a;剛學 TS 的前端開發者&#xff0c;或希望把泛型用到實際工程&#xff08;請求封裝、組件復用&#xff09;中的同學。目錄 為什么需要泛型&#xff08;直觀動機&#xff09;基本語法與例子&#xff08;函數、接口、類&#xff09;泛型約束&#xff08;exten…

Linux ARP老化機制/探測機制/ip neigh使用

文章目錄1. ARP狀態機1.1 ARP狀態類型1.2 狀態轉換圖2. 超時時間與參數2.1 主要超時參數2.1.1 基礎時間參數2.1.2 探測相關參數2.1.3 垃圾回收參數3. 主機發送ARP報文的時機3.1 發送數據包時發現ARP緩存中沒有目標IP的MAC地址3.2 ARP條目進入STALE狀態后需要發送數據3.3 定期維…

便攜式顯示器怎么選?:6大關鍵指標全解析

地鐵通勤路上&#xff0c;程序員小陳掏出背包里的便攜屏&#xff0c;連接手機即刻擴展出第二個工作窗口&#xff0c;趕在上班前修復了緊急bug&#xff1b;咖啡廳里&#xff0c;設計師阿琳用筆記本加便攜屏的雙屏組合&#xff0c;一邊參看客戶brief一邊修改方案&#xff0c;效率…

以太坊網絡

以太坊的網絡和以太網是兩個完全不同的概念&#xff0c;雖然它們的名稱聽起來相似&#xff0c;但它們屬于不同的技術領域。以太坊網絡&#xff08;Ethereum Network&#xff09;領域&#xff1a;區塊鏈和加密貨幣定義&#xff1a;以太坊是一個開源區塊鏈平臺&#xff0c;支持智…

nano banana官方最強Prompt模板來了!六大場景模板詳解

最近&#xff0c;相信大家的朋友圈和社交媒體都被一個叫nano banana的AI圖像生成工具刷屏了。從精致的手辦模型到名畫人物穿越&#xff0c;再到中土世界場景還原&#xff0c;nano banana已然成為了最火爆的“整活工具之一。剛剛&#xff0c;谷歌為nano banana推出了官方Prompt模…