这里写自定义目录标题
- 前言
- 项目内容
- 项目进展
- 1、本章节事项
- 1.1、确定2个分类
- 1.2、寻找来源网站
- 1.2.1、京东搜索
- 1.2.2、淘宝搜索
- 1.2.3、唯品会搜索
- 1.3、编写代码,收集数据,并按照分类存放图片
- 1.3.1、在Java项目里加载Selenium+ChromeDriver+Jsoup的jar包
- 1.3.2、编写代码从唯品会网站收集苹果手机、面霜分类数据
- 1.3.2.1、准备好ChromeDriver路径,网络图片下载到本地的方法
- 1.3.2.2、编写代码采集数据
- 1.4、解决网站反爬策略(使用IP代理)
- 1.4.1、使用亮数据代理IP解决上述问题
- 1.4.1.1、注册亮数据并登录
- 1.4.1.2、创建动态IP代理通道
- 2、亮数据的亮点
前言
近年来,AIGC大模型火得一塌糊涂,大学的专业正好是人工智能专业,赶紧上车抓住风口,做一个电商AI识别大模型项目。项目使用PyTorch搭建卷积神经网络模型、训练模型和使用模型进行图像识别,使用Java+Selenium+ChromeDriver+Jsoup爬取数据集,并在爬取数据时做好分类。由于我们所需要的数据集非常多,所以还需要使用亮数据动态IP代理,解决单位时间内频繁访问来源网站、下载商品图片的问题。
亮数据代理快速的收集训练数据集数据,打造自己的AIGC大模型
项目内容
图像识别的过程一般可以分成以下几个步骤:
- 建立图像(包含标签)数据集;
- 加载到神经网络进行训练,得到模型文件
- 加载新图片(不在数据集),对图像进行处理(灰度、滤波去噪声、轮廓提取、腐蚀等)
- 与模型文件进行匹配,最后得到预测结果
项目进展
工欲善其事必先利其器,今天我们花一些时间做一个自动化收集数据集以及自动分类的工具,
1、本章节事项
- 确定2个分类
- 寻找来源网站
- 编写代码,收集数据,并按照分类存放图片
- 解决网站反爬策略(使用亮数据动态IP代理)
1.1、确定2个分类
在观测一些电商网站数据以及综合日常生活后,我们选择其中2个爆款分类:手机、化妆品的细分分类,苹果手机和面霜。
1.2、寻找来源网站
确定了分类后,我们去寻找苹果手机、面霜2个分类数据的来源网站,我们首先把目标定为京东、淘宝、唯品会、得物。我们在按顺序评测这几个目标网站的优缺点后(对编写收集数据的程序是否有阻碍),确定了唯品会可以作为我们的数据集来源网站。
1.2.1、京东搜索
京东搜索的网址:https://search.jd.com/Search?keyword=苹果手机
缺点:需要登录才能使用京东搜索(手机站也一样需要登录验证)
1.2.2、淘宝搜索
淘宝搜索的网址:https://s.taobao.com/search?ie=utf8&page=1&search_type=item&tab=all&q=苹果手机
缺点:需要登录才能使用淘宝搜索(跟上面的京东搜索一样)
1.2.3、唯品会搜索
唯品会搜索的网址:https://category.vip.com/suggest.php?keyword=苹果手机
优点:在不需要登录的情况下,就可以使用唯品会搜索功能
1.3、编写代码,收集数据,并按照分类存放图片
我们使用Java+Selenium+ChromeDriver+Jsoup爬取数据集,并在爬取数据时做好分类。
- 1、安装Idea+jdk8+Maven3(可自行百度,案例非常多);
- 2、创建Java Maven项目(方便管理jar包);
- 3、下载ChromeDriver , chrome浏览器(可自行百度,案例非常多);
- 4、在Java项目里加载Selenium+ChromeDriver+Jsoup的jar包;
- 5、编写代码从唯品会网站收集苹果手机、面霜分类数据;
- 6、增加反爬策略(使用亮数据动态代理IP),提高收集数据的安全性和速度。
下面我们重点讲解4、5、6核心内容,完成机器化数据收集程序。
1.3.1、在Java项目里加载Selenium+ChromeDriver+Jsoup的jar包
引入Selenium+Jsoup的jar包
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.7</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<!-- 网页Dom解析神器 -->
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.11.3</version>
</dependency>
<!-- selenium自动化测试框架,可与chromeDriver集成 -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.9.1</version>
</dependency>
<!-- 需要用到字符串辅助类 -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.9</version>
</dependency>
</dependencies>
下载ChromeDriver,并放入指定的文件夹
1.3.2、编写代码从唯品会网站收集苹果手机、面霜分类数据
1.3.2.1、准备好ChromeDriver路径,网络图片下载到本地的方法
1.3.2.2、编写代码采集数据
1.4、解决网站反爬策略(使用IP代理)
在运行的过程中,我们发现了几个问题。
1、图片下载过于频繁,导致出现了异常图片
2、为了加快收集数据的速度,我们调整成了多线程运行,频繁的访问网站,导致出现了连接异常的错误
1.4.1、使用亮数据代理IP解决上述问题
1、注册亮数据并登录;
2、创建动态IP代理通道;
3、获取动态IP代理并导入程序中;
4、使用动态IP代理解决问题;
1.4.1.1、注册亮数据并登录
亮数据(<··快速跳转到亮数据首页并注册)为粉丝提供了10美金的抵用券,成功注册账户,并登录后在用户界面里输入折扣代码即可享受抵扣!
折扣代码:xiaobaibai
访问页面:电商 - Bright Data
如有问题,可以关注“Bright_Data”亮数据官微,联系后台客服。
可以看到下图,这里是我已经创建好的动态IP代理通道,动态住宅IP按照流量计费,$8.4/GB,费用还是很便宜的,赠送的10美金,足够我们收集几百万条商品图片数据了。
1.4.1.2、创建动态IP代理通道
在注册并登录之后,来到个人工作台,我们第一步选择左边的导航:代理IP网络和爬火车东基础设施
第二步选择动态住宅代理,点击【开始使用】。
接下来按照提示,创建动态住宅代理,最终可以看到有通道名、主机、用户名、密码、有使用权限的IP等;创建成功之后,回到工作台,就可以看到我们新创建的通道了(见【1.4.1.1】)。
3、获取动态IP代理并导入程序中
在【1.4.1.2】的第2张图中,有获取代理IP的命令,我们直接复制到cmd命令窗口执行,就可以获取到代理IP了。
其中IP就是代理IP,asnum就是代理端口。
在程序里使用动态IP代理,通过chromeOptions去加载动态IP代理,数据格式:ip:端口
4、使用动态IP代理解决问题
在使用动态IP代理后,我们可以放心的使用多线程收集收据,并且在下载图片时,可以加入到图片下载队列里,循环使用我们的动态IP代理去下载图片。举个例子:原来1秒钟单IP20个请求,变为现在的1秒钟10个IP20个请求,请求总量还是20个,但是每秒钟每个IP只用处理2个请求,就很接近自然人的操作,从而不会被唯品会网站拒绝访问了。
2、亮数据的亮点
亮数据不仅有动态代理IP,还有静态住宅IP、机房代理、移动代理、亮数据浏览器、亮网络解锁器等,可以全方位的解决我们在获取数据中遇到的实际问题。
比如亮数据的Web Scraper IDE,就可以在线全程可视化的收集数据,非常的便捷与先进,都不需要我们来编写代码了。