写点什么

爬虫 + 动态代理助力 AI 训练数据采集

作者:袁袁袁袁满
  • 2025-03-19
    四川
  • 本文字数:3016 字

    阅读完需:约 10 分钟

引言

近年来,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 requestfrom lxml import etree
proxy = {'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 个月!所有新老客户均可使用,点击注册或登录,即可直接享受折扣。

用户头像

还未添加个人签名 2022-04-28 加入

还未添加个人简介

评论

发布
暂无评论
爬虫+动态代理助力 AI 训练数据采集_代理IP_袁袁袁袁满_InfoQ写作社区