-
在线产品即时比价系统设计方案
1.1
课题研究的意义
1.1.1
课题的现实意义
当用户需要购买一件
商品时他需要面临一个选择,
即在哪个购买自己想要的商品,
在
这个时候用户会在各大电商中逐一搜索自己想要购买的商品,哪个提供的商品性价
比最高
,用户就会选择这个进行交易。
用户在各大搜索和比较商品无
疑是一件费时费力的事情,频繁得在各大电商之间
切换,不能很直观的看到这些商品之间
的差异。此外,用户多会在一些较大的电商比
如淘宝、京东等搜索自己想要购买的商品,
却忽略了其它规模较小的电商,用户在不
知不觉间就丢失了一些重要的信息。
为了应对以上问题,开发一个比价系统是很有必要的。当用户需要购买一
件商品
时,只需要在比价搜索自己想要的商品,比价会将各大电商的商品信息在同一个页
面
呈现给用户,用户可以直观的看到各大电商的商品价格差异,同时也能获取其它不知<
/p>
名购物的商品信息,有助于用户完成交易。比价系统对于用户和卖家都是有利的,非
常有价值去实现这么一个具有比价功能的系统。
1.1.2
课题的学习意义
Web
系统开发在当前是一个非常热门的领域,
越来越多的程序员都在涌向
Web
开发
领域。
因此
,
熟悉一些
Web
开发中常用的技术是
非常有意义的事情。
Java
、
PHP
和
.net
是当今
Web
开发中最常用的技术。
本系统将采用
Java
来开发,
同时了解
J
ava
开发
Web
系统的流程,
熟悉
Java
开发的一些常用技术,
对自己以后的发展是很有帮助的,
因此
开发一个
这样的基于
Web
的网络购物比价系统能够提高自己的竞争力,
也可以为将来
从事此行业铺好道路。
1.2
国外概况
1.2.1
比价系统国外发展概况
互联网技术的
出现和发展极大方便了人们对信息的获取,
国外互联网出现的较早,
对价格比较系统的研究和开发也比较早。目前国外的比较购物行业已经处于较为成熟
的阶段。比较购物已经成为国外网购用户必须借助的网购工具,
也成为
< br>B2C
商家不可
或缺的合作伙伴。
国比较购物起步的比较晚,
一直到
2004 <
/p>
年,
随着互联网的普及,
比较购物才开始
兴起,但是发展到现在,国也已经出现了不少的比较购物和应用。
1.2.2
HTML
解析国外发展概况
比价系统的核心在于
HTML
文本的解析,当前
用以
HTML
解析的工具非常多,这些
工具由各种语言开发,很多工具都有多语言版本。国外可用以
HTML
< br>解析的库相当多,
主要如下:
HTML
Parser
。该库是一
个对
HTML
进行分析的快速实时的解析器,最新的发行版
p>
本是
2.0
。
Jsoup
。
Jsoup
是一款
Java
的
HTML
解析器,可直接解析某个
URL
地址、
HTML
文
本容。它提供了一套非常省力的
API
,可通过
DOM
,
CSS<
/p>
以及类似于
JQuery
的操作方
法来取出和操作数据。
jsoup
的主要功能
如下:
从一个
URL
,
文件或字符串中解析
HTML
;
使用
DOM
或
CSS
选择器来查找、取出数据;可操作
HTML
元素、属性
、文本;
jsoup
是
基于
MIT
协议发布的,可放心使用于商业项目。
<
/p>
NekoHTML
。
NekoHTML<
/p>
是
一
个
Java
语
言
的
p>
HTML
扫
描
器<
/p>
和
标
签
补
全
器
(tag
balancer) ,
使得程序能解析
HTML
文档并用标准的
XML
接口
来访问其中的信息。这个
解析器能够扫描
HTML
文件并“修正”许多作者
(人或机器)
在编写
HTML
文档
过程
中
常犯的错误。
NekoHTML
能增
补缺失的父元素、自动用结束标签关闭相应的元素,以及
不匹配的嵌元素标签。
NekoHTML
的开发使用了
Xerces
Native Interface (XNI)
,后
者是
p>
Xerces2
的实现基础。
JTidy
。
JTidy
是
HTML Tidy
用
Java
语言实现的版本,提供了一个
HTML
的语法
检查器和很好的打印功能。
JT
idy
可以用来清除格式不好和不对的
HTML
。
此外,
JTidy
提供了
对整个
HTML
的
DOM
分析器。
程序员可以将
JTidy
< br>当作一个处理
HTML
文件的
D
OM
解析器来使用。
HTMLCle
aner
。
HTMLCleaner
是
一个开源的
Java
语言的
HTML<
/p>
文档解析器。
HTMLCleaner
能
够重新整理
HTML
文档的每个元素并生成结构良好
(Well-Formed)
的
HTML
文档。
默认它遵循的规则是
类似于大部份
web
浏览器为创文档对象模型所使用的
规则。然而,用户可以提供自定义
tag
和规则
组来进行过滤和匹配。
MozillaParser
。
MozillaParser
是一个
Java
的
HTML
解析类库,基于
mozilla
的
HTML
解析器,提供了
Java
类到
Mozilla
类的一个桥接,输入一个
HTML
文本,输
出一个
Java
的
Document
对象。
Jerry
。
Jerry
是
Jodd
工具包中的一个
< br>HTML
解析工具。
它有点像是用
Java
实现
的
jQuery
。
Jerry
是一个高效简洁的
Java
库,用来简化
HTML
的解析,遍历和操作。
Jerry
的
API
在设计的时候完全向
jQuery
靠拢,几乎和
jQuery
一样,所以有时候你
可以直接
copy jQuery
的代码来用。当
然,也有些代码做不到一样,毕竟执行的环境
差了很多。
Jer
ry
是一个静态的
HTML
解析工具,
所以
jQuery
的动态功能
Jerr
y
是没
有的,例如
Ajax
,动画等等。
Scrender
。
Scrender
是一个用来生成网页缩略图的
p>
Java
类库,
基于
SWT
开发。
它
实质上是调用本地浏
览器引擎对要进行截图的进行渲染,然后保存该网页的缩略图。
在本系统中采用
Jsoup
来进行
H
TML
文本解析,灵活、高效地使用
Jsoup
也是整个
系统的关键所在。
1.3
课题主要容
1.3.1
课题任务
本课题将实现一个简单的网
络购物比价系统,系统需达到如下要求:
本系统主要是对在淘
宝网、京东网和亚马逊网三大购物中的相同产品的信息进行
抽取。
本系统的重点是实现使用
HTML
页面爬取功能获取产品数据
,
对获取到的网页数
据进行抽取分析,
最后以
Web
页面形式呈现出来。
本系
统的难点是使用
HTML
页面爬取
功能
获取产品数据,对获取到的网页数据进行抽取分析,结构化抽取的数据和信息。
1.3.2
毕设主要容
毕设根据课题任务实现了
一个实时爬取淘宝网、京东网和亚马逊网的商品信息的
比价系统。系统具有如下特点:<
/p>
(1)
系统
能够分别从淘宝、
京东和亚马逊三个爬取相关商品信息,
商品的
信息包括
商品、商品图片、商品价格、商品名(也指商品简介)
。系统可以在同一个页
面中同时显示三大电商的相关商品信息,
用户可以从页面中看到不同电商的商
品价格差异;
(2)
商品的关键字匹配是在电商完
成,
电商的搜索结果是比较准确的,
系统将搜索
结果直接拿来使用,保证了商品关键字的较高匹配度;
(3)
系统设计为实时爬取。
系统的这个特性保证了系统爬取到的信息的准确度,
能
够很好应对两大电商的价格浮动和商品的新旧更替;
(4)
系统的默认排序为三个电商商
品的交替排序,
并且这些排序是经过相似度算法
处理的;
(5)
系统可以选择不同的电商(这里只做了三个)的商品;
(6)
系统没有较明显的大
BUG
,不影响用户的使用体验;
(7)
系统主要分为
3
个层级:业务逻辑层、数据爬取层、视图层。三个层级协调工
作,共同实现整个系统的功能。
2
系统设计方案
2.1
两种系统设计方案
比价系统要做的事
情主要是:爬取多个电商的商品信息,将这些商品的信息同时
呈现给用户。
然而商品数目繁多,系统需要在众多的商品中搜索出符合用户要求的商品。
关于
在何时何地进行商品的搜索产生了
2
种不同的方案
-
数据库法和即时爬取法。
数据库
法需要经常更新数据库数据,而即时爬取法则更适合本系统的设计目的。
在
2.1.1
和
2.1.2
小节将会详述
2
种方案的细节,以及两种方案的优
缺点。
2.1.1
方案
1
数据库法
在该方案中,系统已经事先
爬取了各大电商几乎所有的商品信息,然后将每种商
品的主要信息(商品价格、商品主页
、商品图片、商品简介)存储在服务器的数据库
当中,并将每种商品在数据库的索引和其
关键字信息通过检索
/
索引工具(比如:
Lucene
)在磁盘建立索引文件。当用户在比价系统的搜索栏中输入关键字并点击
搜索
按钮时,
系统获取了这一关键字,
然后通过检索
/
索引工具的检索功能获取一系列符合
要求的商品的索引,然后将这些商品的信息从数据库取出,通过
jsp
p>
技术动态生成网
页提交给用户的客户端浏览器。方案
1
的系统流程见图
2.1
。<
/p>
(1)
方案优点
爬取模块和响应客户端的模
块相对较独立,爬取模块可在空闲时爬取商品信息。
商品检索在服务器端执行,响应速度
较快。
(2)
方案缺点
每个电商的商品数量都是非
常大的,再加上多个电商,总的商品量就相当大,然
而电商的数据库不可能开放给外界直
接进行访问,系统需要通过电商的商品页面来获
取商品信息。假设每个商品都对应一个页
面,那么就是海量的数据要进行处理。每爬
取一次都要耗费大量的资源,带来一定的开销
,然而这些商品的数据并不是一成不变
的,需要经常更新来确保数据的准确性。
业
务
逻
辑
层
②
⑤
数据持久化
③
①
p>
客
户
端
浏
览器
⑦
⑥
④
③
数
据
①
②
京
东
商城
数据库
视图层
爬
①
取
模
块
②
亚
马
p>
逊
商城
图
2.1
方案
1
数据库法
2.1.2
方案
2
即时爬取法
方案
1
的实现类似于搜索引擎,方案
2
则与方案
1
大不相同。方案
2
中商品的信
息并不存储在系统服务器端的数据库中。当用户提交关键字时
,服务器端将关键字提
交给各大电商,然后将各大电商的搜索结果页中爬取商品信息,将
爬取到的信息经过
处理再动态生成网页提交给用户。方案
2
p>
的系统流程见图
2.2.
(1)
方案优点
较灵活,可良好应对商品信
息经常变更的情况。在服务器不需要数据库来存储数
据,消除了数据的维护成本。
(2)
方案缺点
用户在客户端每提交一次关
键字服务器就要在各大电商再提交一次关键字,然后
实时爬取商品信息再反馈给用户的客
户端浏览器,需要花费时间等待系统把产品页面
数据下载下来,而且每次面向用户服务都
要对各大电商商品页面信息页面进行解析,
耗时耗资源,特别是在数据源很多的情况下。
①
客
户
p>
端
浏
览器
⑥
业
务
p>
逻
辑
层
③
②
京
东
商
城
< br>视
图
层
⑤
数
据
爬
取
层
④
图
2.2
方案
2
即时爬取法
比价系统
③
④
p>
亚
马
逊
商
城
2.2
方案选择
最终实现方案:方案
2
即时爬取法。
在方案
1(
见图
2.1)
当中,一次
性抓取所有电商的所有信息要耗费大量的时间,而
且在此期间对于大量网页的解析需要进
行大量的运算,在此抓取周期还可能发生各种
不可预知的因素,
而且整个抓取模块还受限于
PC
机的性能和网络环境等因素,<
/p>
综合以
上因素方案
1
并不适合作为毕业设计的最终方案。而方案
2
较容易实现,
虽然用户每
次访问都要做较大量的运算,并行服务性能定然不强,但并不用事先抓取海量
的商品
信息,相对于方案
1
较容易实现
。综合以上分析的情况,选定方案
2
作为系统的最终
实现方案。
2.3
开发技术与开发环境
2.3.1
JSP
技术
Web
领域开发技术众多,像
.NET
、
JSP
、
PHP
等。本系统主要使用
JSP
技术来实现。
< br>JSP
是由
SUN
公司倡导、其
它公司参与一起建立的一种动态技术标准。在传统的网页
HTML
文件中加入
JAVA
程序片段和
JS
P
标签,就构成了
JSP
网页。
JAVA
程序片段可以
操作数据库、重新定向
网页等,实现建立动态所需的功能,所有程序操作都在服务器
端执行,并将动态建立的<
/p>
HTML
网页发送给客户端浏览器。而浏览器与开发技术无关,<
/p>
浏览器只负责解析渲染
HTML
页面。<
/p>
JSP
技术优势。由于
JAVA
跨平台的特性,可以一次编写处处运行。代码在跨平台
时不用做大量的修改。
JAVA
具有强大的可伸缩性,
由多台服务器进行集群和负载均衡
再到多态
Applicati
on
进行事务处理,消息处理,一台服务器到无数台服务器,
J
AVA
显示了一个巨大的生命力。
JAVA
还有功能强大的和多样化的开发工具支持。很多开发
工具免费提供给开发者和学习者
。此外
JAVA
还有很多服务器端组件的支持
< br>
JSP
技术劣势。
JAVA<
/p>
的跨平台特性源于其特殊的运行方式。
JAVA
< br>编译成字节码后
要在
JVM
中运
行。
这样大大降低了执行效率。
同时
J
AVA
庞大繁多的框架与组件支持也
加大了其系统的复杂性以及
学习者的压力。
2.3.2
HTML
解析技术
Jsoup
介绍
系统使用
HTML
p>
解析库
Jsoup
来对网页进行解析。
p>
jsoup
是一款
Java
的
HTML
解析
器,可直
接解析某个
URL
地址、
HTML
p>
文本容。它提供了一套非常省力的
API
,
可通过
DOM
,
CSS
以及类似于
jQuery
的操作方法来取出和操作数据
。
jsoup
的主要功能如下:
(1)
从一个
URL
,文件或字符串中解析
HTML
;
(2)
使用
DOM
或
CSS
选择器来查找、取出数据;
(3)
可操作
HTML
元素、属性、文本;
js
oup
是基于
MIT
协议发布的,可放
心使用于商业项目。
jsoup
的主要类层次结构如下图所示:
图
2.3
Jsoup
类层次结构图
2.3.3
系统开发环境
JAVA
是一个跨平台的语言,相应的
JSP
技术也可以在多
平台下做开发。本系统在
Windows7
64bit
下搭建开发与运行环境。
(1)
JDK1.6
JDK
(
Java
Development Kit
)是
Sun Microsy
stems
针对
Java
开发人员的产
品。
JDK
是整个
Java
的核心,包括了
Java
运行环境、
Java
工具和
Java
基
础类库。
(2)
Intellij IDEA 13
IDEA
全称是
Intellij <
/p>
IDEA
,是
java
< br>语言开发的集成环境,
IntelliJ
在业界被公
p>
认为最好的
java
开发工具之一,尤其在
智能代码助手、代码自动提示、重构、
J2EE
支持、
Ant
、
JUnit
、
CVS
整合、代码审查、
创新的
GUI
设计等方面的功能可以说是超
常的。
IDEA
是
J
etBrains
公司的产品,这家公司总部位于捷克国的首都布拉格,开发
人员以严谨著称的东欧程序员为主。
(3)
Tomcat
Tomcat
是
Apache
软件基金会(
Apache Software
Foundation
)的
Jakarta
< br>项目
中的一个核心项目,由
Apache
、
Sun
和其他一些公司及个人共同开发而成。由于有了
Sun
的参与和支持,
最新的
Servlet
和
JSP
规总是能在
Tomcat
中得到体现,
Tomcat
5
支持最新的
Servlet 2.4
和
JSP
2.0
规。因为
Tomcat
技术先进、性
能稳定,而且
免费,因而深受
Java
爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较
流行的
< br>Web
应用服务器。目前最新版本是
8.0
,而本系统采用的是版本
Tomcat
6.0
。
3
系统总体设计
3.1
系统总体架构
系统采用
JAVA EE
技术开发。
系统主要分为
3
个层次:业务逻辑模层、数据爬取
层块、视图层。该系统虽不是严格的
MVC
模式,却
与
MVC
模式具有很大的相似性。
<
/p>
业务逻辑层。该层负责将浏览器提交的参数进行简单的处理,
通过
相关逻辑功能,
分别生成三大电商的
URL
,将
URL
作为参数提交给数据爬取层。该层相当于
MVC
里面
的
C
p>
。
数据爬取层。数据爬取层以业务逻辑层
提交的
URL
作为参数,对该
URL<
/p>
对应的商
品页面进行解析,获取页面的商品列表,针对商品列表中
的每一件商品逐个解析,最
后把爬取到的商品数据封装在对象数组中,返回给业务逻辑层
。该层相当于
MVC
里面
的
M
。
视图层。视图层是
直接面向用户的一个层,
该层包含了一个静态的
HTML
页面和一
个动态的
JSP
页面。
静态的
HTML
页面是系统
的主页,
主要负责向系统提交用户的搜索
关键字。
动态页面主要用来显示搜索的结果,
同时也提供同静态
HTML
页面相同的功能。
系统总体架构图如图
3.1
所示。
发送搜索关键字
①
与分页信息请求
②
发送
url
请求
视
图
层
返回处理过的数据
④
业
p>
务
逻
辑
层
③
返回爬取到的数据
数
据
爬
取
层
图
3.1
系统总体架构图
3.2
每层简要设计
接口是软件开发领域的
一个重要的概念。接口可以用来定义软件体系中不同层次
之间的通信规则。在软件开发的
过程中,开发者将系统分为多个层次,每个层次实现
特定的功能,并为各个层次之间的通
信建立接口标准,这样只要每个层次的满足了接
口标准,在某一层需要改动的时候其它层
不需要进行改变。接口屏蔽了每一层的实现
细节,同时保证了程序模块的重用性。
本系统分为三个层次:业务逻辑层、数据爬取层、视图层。业务逻辑
层根据用户
的请求生成三大电商的
URL
,将
URL
提交给数据爬取层;同时业务逻辑层还将数据爬<
/p>
取层返回的商品数据进行简单的处理,将其返回给视图层。数据爬取层根据业务逻辑
层提交的
URL
爬取该页面的商品数据,
p>
将数据封装在对象数组中并返回给业务逻辑层。
视图层根据业务逻辑
层返回的商品数据,
动态生成
HTML
页面,
将其提交给用户端的浏
览器。
业务逻辑层。在该层创建时,其构造方法需要以
request
对象作为参数,该层可
以根据
requ
est
对象获取用户的请求。在该层消亡时,该层需要返回商品数据给调用
层,因此该层需要有一个方法用来获取商品信息并将其返回。可以对该层进行如下框
< br>架设计:
(1)
类:
GetItemFromWeb
,该类为该层
的功能实现类。
(2)
方法:
GetItemFromWeb (
HttpServletRequest request )
,该方法为构造方
法,
创建对象时以
request
对象作为参数,
该类可以通过
request
p>
对象来获取
用户的请求信息。
(3)
方法:
public
List
getItemInfoList
()
,该方法用以获取通过请
求获得的商品项信息列表结果集。
数据爬取层。该层以页面
URL
作为参
数获取该页面的商品信息。在该层创建时,
该层需要获取页面的
URL
,其构造方法需要以
URL
作为
参数。在该层消亡时,该层需
要将爬取到的商品数据返回给调用层。可以对该层进行如下
框架设计:
(1)
接口
ItemInfoListInterface
,
该接口用于规获取商品项信息列表的类。
(2)
方法
public List
,该方法爬取
URL
对应的
页面的商
品信息,并将其作为返回值返回。
视图层。该层可以用两个页
面实现。使用静态的
HTML
网页做系统的主页,该页面
的搜索框模仿一淘网的主页搜索框样式。动态的页面使用的是
JSP<
/p>
技术实现,该页面
负责显示商品的信息,该页面模仿了京东加一淘
的搜索结果页的布局。
系统的数据流向图见图
3.2
。
浏
览
器
①请求
视
图
层
p>
②
request
对象
⑧
HTML
文本
⑦商品数据
业
务
逻
辑
层
③
URL
⑥商品数据
数
据
爬
取
层
④
URL
电
商
网
站
⑤<
/p>
HTML
文
图
3
.2
系统数据流向图
4
系统详细设计与实现
4.1
系统功能简介
本系统只对淘宝网、京
东网和亚马逊网
3
个购物的商品信息进行爬取。系统可以
根据用户提交的关键字在淘宝网、京东网和亚马逊网抓取相关商品信息,并将抓取到
的信息通过
JSP
技术动态生成网页提交给浏览器
。用户可以在搜索结果页中看到来自
三大电商的商品,可以直观地察觉到两大商城的商品
价格差异,并不用分别从两大电
商的搜索商品,这样节省了用户的时间和精力。
在上文中介绍到系统主要由三层构成,下文将详细介绍这三个功能层的
设计与实
现。
4.2
数据爬取层设计与实现
数据爬取层的
功能:以页面的
URL
作为参数获取该页面的商品信息,并将商
品信
息封装在对象数组中。本小节将着重于介绍系统如何从页面的
URL
获取每件商品的各
项基本信息。
4.2.1
爬取商品列表
(1)
京东商品列表爬取算法的设计与实现
京东搜索得到商品的搜索结果页面见图
4.1
。
在图
4.1
中,
红色方框中的
商品才是
系统需要爬取的商品。数据爬取层需要将搜索到的结果从大量的商品中分离出来
,得
到一个列表,然后再对列表中的商品逐一解析。本小节将详细介绍系统如何获取这个
列表。
图
4.1
京东商品搜索结果页面
在搜索结果中,京东的的图书和非图书的搜索结果页面结构是
不同的,图书和非
图书商品在搜索结果页面中的
HTML
代码对比如下:
非图书商品
1
非图书商品
2
非图书商品
3
book
book
图书商品
2
book
图书商品
3
……
……
非图书商品
N
bookid=”…”>
图书商品
N
……
图书商品
1
……
标签
中存放搜索
得到的所有商品。获取商品的列
表就是将标签
class=
clearfix
中的所有子标签
对应的
Node
结点过
滤出来。系统中实现获取搜索结果页面商品列表算法的为类
JDItemInfoList
的
GetItem
InfoList
方法,类
JDItemInfoList
p>
同时也是实现数据爬取层的顶层类,该类
的成员及简介见表
4.1.
表
4.1
类
JDItemInfoList
成员
PageInfoData
pagedata
pageurl
public
JDItemInfoList ( PageInfoData
pagedata1,String url)
private List
通过页面
URL
获取商品列表
简介
存储用户请求的页面信息对象
当前需要解析的页面
URL
构造方法
getItemInfoList
方法可以采取两种方法来获取商品搜索结果的列表。<
/p>
其中一种方
法对图书和非图书的
HTML
结构敏感,另外一种方法对两者的
HTML
结构不敏感。下文
将详细介绍这两种方法。
①
方法<
/p>
1
:对两者的
HTML
< br>结构不敏感
方法
1
是一种对于两种商品的
HTML
结构不敏感的方法
。
图书商品和非图书商品都
存放在标签
中,系统可以过滤出该标签对应的节点标
签对象,并执行该对象的
getChildren
方法即可获取
商品的列表。
方法
1
的优点:简洁、高效、出错机率小。
方法
1
的缺点:
getChildren
方法获取的列表中会存在大量的空结点,在下一小
层对列表中的商品进行解
析时会花费额外的开销去处理这些空结点。
②
方法<
/p>
2
:对两者的
HTML
< br>结构敏感
方法
2
对于两种商品的
HTML
结构敏感,
该方法直接从整棵树中过滤出商品的
结点并得
到一个列表。
然而系统预先并不知晓该页面是图书商品页还是非图书商品页,
系统需要同时用两种过滤规则过滤出商品的结点列表。
(2)
亚马逊商品列表爬取算法设计与实现
针对亚马逊的页面商品列表提取算法与京东的基本一样。亚马逊对所有商品的搜
索结果页
中商品局部
HTML
结构都是一样的,比京东的更简单。
亚马逊搜索结果页的商品信息放在
<
div class=
……
中,每
件商品的信息放在
<
div
id=
序号
c
lass=
firstResultRow
product<
/p>
name=
商品名字
……
< /div
>
中,可以依据上诉规律来设定过滤条件。
< br>亚马逊的搜索结果页面结构较统一,并不需要像京东那样需要采用多线程技术针
对
两种页面进行爬取,除此之外其它的流程和京东模块基本一致,不再赘诉。
4.2.2
爬取商品基本信息
商品的基本信息包
括:商品、商品图片、商品价格、商品简介。这些信息全部用
字符串来表示,在
java
中用
String
来表示。
系统用一个类
Item
InfoData
来存储单件商品的基本信息。该类有
5
个数据成员,
其定义如下:
public class ItemInfoData {
public String itemUrl;
public String itemIntro;
public String itemImage;
public String itemPrice;
public String jdid;
}
其中
itemUrl
是商品的,
itemIntro
是商品的简介,
ItemImage
是商品的图片,
item
Price
是商品的价格。系统中所有的商品都需要抓取前
4<
/p>
个信息,并且每件商品
的信息都存储在
I
temInfoData
类型的对象中。对于京东还需要抓取商品的
ID
存储在
jdid
中。
(1)
京东商城商品基本信息抓取算法
在京
东的搜索栏中提交关键字后,京东根据关键字搜索到符合要求的商品,并将
商品按符合度
排序。
京东在每一页面最多显示
36
件
商品。
在上文中讲到,
每件商品的
信息
都放在标签