文章目錄
- 引言
- 新手之選:網頁抓取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個月!所有新老客戶均可使用,點
擊注冊或登錄,即可直接享受折扣。