爬蟲+動態代理助力 AI 訓練數據采集

文章目錄
  • 引言
  • 新手之選:網頁抓取API
  • 可靠之選:動態住宅代理
  • 總結

引言

近年來,AI 技術飛速發展,很多朋友都投身于 AI 模型的訓練。然而,相較于模型的獲取,高質量的數據往往更加難以收集。一方面,互聯網每天都在源源不斷地產生新數據,另一方面,各大網站普遍設有反爬機制,阻止自動化程序抓取信息。在這種情況下,動態代理服務成為破解難題的關鍵工具。通過動態代理,我們的爬蟲程序可以模擬不同的用戶身份,在訪問網站時偽裝 IP 地址,從而有效降低被封禁的風險。

作為行業的先行者,亮數據是最早開展代理 IP 服務的企業之一,經過多年積累,已構建起龐大且穩定的代理 IP 資源。借助其代理服務,我們可以顯著提高爬蟲程序的訪問成功率,從而更高效地獲取數據,助力 AI 模型的訓練。

維基百科是 AI 領域的重要數據來源,廣泛用于訓練 RoBERTa、XLNet 和 LLaMA 等大模型。本次,我們將以采集維基百科數據為例,分別面向零經驗的初學者和熟練開發者介紹如何結合爬蟲技術與動態代理,高效獲取訓練數據。

新手之選:網頁抓取API

如果你是第一次接觸爬蟲技術,可能會感到有些無從下手,不知道該從哪里開始。別擔心,其實并沒有那么復雜!你可以嘗試使用 亮數據的網頁抓取API,它已經為100多個網站量身打造了不同的爬蟲方案,覆蓋了各種應用場景。而且,你無需編寫復雜的代碼,只需通過可視化界面進行簡單配置,就能輕松獲取所需的數據。

登錄以后進入控制臺,點擊網頁抓取API,選擇進入到Web爬蟲庫。Web爬蟲庫中有各種網站的豐富爬蟲應用可以直接使用。

在其中定位到Wikipedia網站,可以看到有一項抓取Wikipedia文章的應用,這就是我們的目標了。

點擊以后選擇爬蟲API,它相比無代碼抓取器有更多的定制空間。

在爬蟲的設置界面中,進入API請求構建器,在這里配置一下令牌,還可以在網址的部分配置采集的頁面。

而在詞典中可以管理要采集的字段,如果沒有你需要的字段,也可以提交工單等待工作人員優化。

配置完成后點擊右上角開始運行。稍等片刻,就可以在日志中下載結果。是不是很簡單呢?

可靠之選:動態住宅代理

如果你已經對爬蟲技術比較熟悉,并且有定制化采集需求,或者想要將數據抓取功能集成到自己的應用中,那么網頁抓取 API 可能會有些局限。這時候,不妨試試 動態住宅代理,搭配自己編寫的爬蟲程序,自由度更高,也更靈活。亮數據的動態住宅代理服務擁有超過 7200 萬個住宅 IP,覆蓋全球多個國家和地區,IP 質量穩定,成功率高,而且價格公道,性價比極佳。對于需要長期、大規模數據采集的開發者來說,這是一個非常可靠的選擇。

登錄之后,在控制面板的代理&抓取基礎設施中選擇動態住宅IP。

之后在代理設置界面填寫名稱,選擇要選購IP的地點,之后就可以開始使用。

確認之后就可以看到代理服務的主機名、用戶名和密碼。將它們復制下來,之后會用到。同時將本地IP添加到白名單中。

之后我們開始編寫爬蟲。我們這次爬取Wikipedia的最近體育新聞板塊,這個功能在網頁抓取API中沒有提供,所以需要我們自行開發。注意到這一個板塊可以使用title="2025 in sports"定位標題,然后向上選取四層定位到整個欄目。然后向下選取到第二個div中的ul和dl即為所需。

首先,我們將代理服務器、請求頭和url定義為一些常量便于管理。接下來,我們創建一個帶有代理的opener對象,和一個包含目標URL和請求頭的請求對象。隨后,發送HTTP請求,獲取頁面的HTML內容,并使用lxml庫將HTML解析為可操作的XML樹結構。

proxy = {'http': 'http://brd-customer-hl_a0a48734-zone-residential_proxy3:7sl48y9j3jfm@brd.superproxy.io:33335'}proxy.io:33335','https': 'http://brd-customer-hl_a0a48734-zone-residential_proxy3:7sl48y9j3jfm@brd.superproxy.io:33335'}
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0"}
url = "https://en.wikipedia.org/wiki/Portal:Current_events"
opener = request.build_opener(request.ProxyHandler(proxy))
req = request.Request(url=url, headers=headers)
html = opener.open(req).read()

接下來,首先定位到頁面中 “2025 in sports” 這個鏈接所在的 HTML 節點,并向上回溯以找到包含完整新聞內容的 div 元素。隨后,進一步解析該 div,提取其中的新聞標題和超鏈接,將其整理成一個字典格式的數據結構。其中,result字典用于存儲爬取到的新聞內容,年份被固定設置為 2025,而新聞條目被存入 content 字段。

root = etree.HTML(html)
div = root.xpath('.//a[@title="2025 in sports"]/../../../..')
ilist = div.xpath('./div[1]')
result = {"time": 2025, "content": []}
for item in ilist.xpath('./ul'):temp = []for lis in ilist.xpath('./dl/dd/ul/li'):for li in lis:link = li.xpath('./a/@href')name = li.xpath('./a/@title')temp.append({"name": name, "link": link})result["content"].append({i7sl48y9j3jfm@brd.superproxy.io:33335'}proxy.io:33335',

最后,將獲取到的新聞信息轉換為字符串,并將其寫入到本地文件中,以便后續處理或分析。

with open('wiki_sport.txt', 'w') as f:f.write(str(result))

完整代碼如下:

from urllib import request
from lxml import etreeproxy = {'http': 'http://brd-customer-hl_a0a48734-zone-residential_proxy3:7sl48y9j3jfm@brd.superproxy.io:33335','https': 'http://brd-customer-hl_a0a48734-zone-residential_proxy3:7sl48y9j3jfm@brd.superproxy.io:33335'}headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0"}url = "https://en.wikipedia.org/wiki/Portal:Current_events"opener = request.build_opener(request.ProxyHandler(proxy))
req = request.Request(url=url, headers=headers)
html = opener.open(req).read()root = etree.HTML(html)
div = root.xpath('.//a[@title="2025 in sports"]/../../../..')
ilist = div.xpath('./div[1]')
result = {"time": 2025, "content": []}
for item in ilist.xpath('./ul'):temp = []for lis in ilist.xpath('./dl/dd/ul/li'):for li in lis:link = li.xpath('./a/@href')name = li.xpath('./a/@title')temp.append({"name": name, "link": link})result["content"].append({item.xpath('./li/a/text()'): temp})with open('wiki_sport.txt', 'w') as f:f.write(str(result))

總結

在 AI 訓練的道路上,高質量的數據是不可或缺的,但獲取這些數據往往面臨諸多挑戰。網站的反爬機制讓直接抓取變得困難,而手動收集數據又過于低效。在這樣的背景下,動態代理服務成為了一種高效、可靠的解決方案。

亮數據作為行業的佼佼者,提供了強大的代理 IP 資源,無論是剛入門的數據采集愛好者,還是經驗豐富的開發者,合理利用爬蟲技術與代理服務,都能幫助我們在 AI 領域邁出更堅實的一步。希望本次的分享能為你的數據獲取任務提供實用的思路和工具,讓 AI 訓練更加順暢。

最近亮數據也開啟了一系列活動,感興趣的朋友不妨了解一下:

  • 亮數據住宅代理全部套餐5折!錯過等一年!所有新老客戶均可使用,點擊
    注冊或登錄,即可直接享受折扣。
  • 亮數據網頁抓取API,全線75折!有效期6個月!所有新老客戶均可使用,點
    擊注冊或登錄,即可直接享受折扣。

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

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

相關文章

OpenEuler服務器警告郵件自動化發送:原理、配置與安全實踐

OpenEuler服務器警告郵件自動化發送:原理、配置與安全實踐 在服務器的運維管理過程中,及時感知系統異常狀態至關重要。當OpenEuler系統運行時,將服務器的警告信息實時推送至郵箱,能幫助運維人員快速響應潛在問題,保障…

使用vite-plugin-html在 HTML 文件中動態注入數據,如元數據、環境變量、標題

vite-plugin-html 是一個用于 Vite 構建工具的插件,它可以幫助你在構建過程中動態注入一些 HTML 內容,比如標題、元數據、環境變量等。通過使用這個插件,你可以根據項目的配置和環境變量自動生成帶有動態內容的 HTML 文件,適用于 …

學習筆記087——Java接口和抽象類的區別和使用

文章目錄 1、主要區別2、使用場景2.1 使用接口的情況:2.1 使用抽象類的情況: 3、Java 8及以后的接口增強4、設計建議 1、主要區別 特性接口(Interface)抽象類(Abstract Class)定義方式使用interface關鍵字使用abstract class關鍵字方法實現Java 8前不能…

Squid 代理服務器實戰:解決動態 IP 訪問第三方接口的生產級方案

前言:動態IP場景下的業務痛點與解決方案 在企業開發場景中,經常會遇到這樣的需求:第三方服務(如API接口、云平臺服務)要求將訪問源IP加入白名單以保障安全。然而,企業辦公網絡通常采用動態IP分配&#xff0…

React中子傳父組件通信操作指南

文章目錄 為什么需要子傳父通信?方法一:回調函數(最常用)基礎示例實際場景:待辦事項列表 方法二:使用useRef傳遞引用方法三:Context API(跨層級通信)方法四:自…

【android bluetooth 框架分析 04】【bt-framework 層詳解 5】【AbstractionLayer介紹】

1. AbstractionLayer 介紹 我們在閱讀 native 和 java 層 藍牙服務代碼時,會發現很多 AbstractionLayer.xxxxx 的字段。 這些字段 雖然很容易理解是干什么的。 但是 大家有沒有考慮過, 為啥要專門定義一個類來存放他們。 這樣設計的意義是什么&#xff…

AI大模型從0到1記錄學習 大模型技術之機器學習 day27-day60

機器學習概述 機器學習(Machine Learning, ML)主要研究計算機系統對于特定任務的性能,逐步進行改善的算法和統計模型。通過輸入海量訓練數據對模型進行訓練,使模型掌握數據所蘊含的潛在規律,進而對新輸入的數據進行準確…

c/c++ 匯編碼中的.cfi 指令有什么用途?

author: hjjdebug date: 2025年 06月 12日 星期四 14:24:40 CST descrip: c/c 匯編碼中的.cfi 指令有什么用途? 文章目錄 1. 幾個簡寫詞.2. 看一個簡單的測試代碼:3. 生成匯編代碼:4. 分析.cfi 指令5. 小結: 1. 幾個簡寫詞. cfi(call frame info) 調用幀信息, 名詞. 描述的是…

ArcGIS Pro 3.4 二次開發 - 任務

環境:ArcGIS Pro SDK 3.4 + .NET 8 文章目錄 任務1 任務1.1 檢索項目中的所有任務項1.2 打開任務文件 - .esriTasks 文件1.3 打開項目任務項1.4 關閉任務項1.5 導出任務項1.6 獲取任務信息 - 從 TaskProjectItem1.7 獲取任務信息 - 從 .esriTasks 文件1.8 在任務文件中打開特定…

vscode如何修改終端的默認配置

問題困擾: 每次打開都是 powershell, 因為每次要是用 git bash, 所以每次手動切換很麻煩。 要將默認終端設置為 Git Bash,可以通過以下步驟完成。以下是詳細的操作方法: 步驟 1:打開終端設置 在 Visual Studio Code 的菜單欄中…

kafka快速入門與知識匯總

? kafka快速入門與知識匯總 一、前言 kafka是一款消息中間件,可以用于傳輸消息和日志收集、監控項目狀況。與其類似的技術棧有rocketmq、rabbitmq等,但這些技術棧大多應用在一些簡單的消息傳輸平臺,而kafka則因其對大量數據的高性能處理在…

設計模式——觀察者設計模式(行為型)

摘要 本文詳細介紹了觀察者設計模式,包括其定義、結構、實現方式、適用場景以及實戰示例。通過代碼示例展示了如何在Spring框架下實現觀察者模式,以及如何通過該模式實現狀態變化通知。同時,對比了觀察者模式與消息中間件在設計理念、耦合程…

uniapp 頁面棧一定深度后,回首頁導航到新頁面的解決方案

uniapp 頁面棧一定深度后,回首頁導航到新頁面的解決方案 uniapp 頁面導航解決方案 在 uniapp 中,要實現先彈出頁面棧回到首頁,然后再跳轉到指定頁面。 /*** description 后臺選擇鏈接專用跳轉*/ interface Link {path: string;name?: stri…

數據結構 散列表 學習 2025年6月12日15:30:48

數據結構 散列表 哈希表(Hash Table): 通過哈希函數將鍵&#xff08;key&#xff09;映射到存儲位置&#xff0c;從而實現快速的插入、刪除和查找操作。 哈希表是現代編程中最重要的數據結構之一&#xff0c;幾乎所有編程語言都提供了內置實現。 計數 #include <stdio.h&g…

數據結構之LinkedList

系列文章目錄 數據結構之ArrayList-CSDN博客 目錄 系列文章目錄 前言 一、模擬實現鏈表 1. 遍歷鏈表 2. 插入節點 3. 刪除節點 4. 清空鏈表 二、鏈表的常見操作 1. 反轉鏈表 2. 返回鏈表的中間節點 3. 鏈表倒數第 k 個節點 4. 合并兩個有序鏈表 5. 分割鏈表 6. 判…

DC3靶機滲透

1. 靶機介紹 主要的內容有 sql 注入漏洞、joomla 框架漏洞、ssh 攻擊、shell 反彈、提權 信息收集(ip、端口、目錄、指紋信息)--->利用漏洞--->反彈---->提權 2. 信息收集 2.1. 掃描存活 ip 192.168.220.134 2.2. 端口掃描 nmap -T4 -A -p- 192.168.220.134 …

C# 線程交互

一、為什么要進行線程交互 在C#中&#xff0c;線程交互通常涉及到多個線程之間的數據共享和同步。?. 一、全局變量 在C#中&#xff0c;全局變量是指在程序的任何地方都可以訪問的變量。通常&#xff0c;全局變量是在類的外部定義的&#xff0c;或者在所有方法之外定義的。全…

Cursor 編輯器中的 Notepad 功能使用指南

Cursor 編輯器中的 Notepad 功能使用指南 摘要 本指南全面介紹了 Cursor 編輯器中的 Notepad 功能&#xff0c;涵蓋其用途、多種訪問方式、適用場景以及與其它功能的整合技巧等內容&#xff0c;助力用戶高效利用該功能提升工作流程效率。 不同訪問方式介紹 功能概述 Curso…

用于評估大語言模型(LLMs)能力的重要基準任務(Benchmark)

基準任務涵蓋了 多領域&#xff08;如語言理解、數學、推理、編程、醫學等&#xff09;和 多能力維度&#xff08;如事實檢索、計算、代碼生成、鏈式推理、多語言處理&#xff09;。常用于模型發布時的對比評測&#xff0c;例如 GPT-4、Claude、Gemini、Mistral 等模型的論文或…

力扣HOT100之技巧:169. 多數元素

這道題如果不考慮空間復雜度和時間復雜度的限制的話很好做&#xff0c;一種思路是通過一次遍歷將所有元素的數量記錄在一個哈希表中&#xff0c;然后我們直接返回出現次數最多的鍵即可。另一種思路是直接對數組進行排序&#xff0c;數組中間的值一定是多數元素&#xff0c;因為…