基于HttpClient的代购同步技术研究与实现
2014-08-07王晓琳
王晓琳
基于HttpClient的代购同步技术研究与实现
王晓琳
网络代购作为电子商务的一种形式,已经发展的十分成熟。人们不再仅限于参与本国的网络购物,而是越来越多地参与各国知名电子商务网站的购买活动。由于种种原因,导致跨国度网上购物难以实现,于是出现了代购网站,提供国外代购服务。提出的代购同步技术,是一种新型的代购网站解决模型。首先,使用HttpClient抓取国外电子商务网站页面的数据用于展示,保证信息的实时性、减少了系统数据库的开销。再使用HttpClient将用户的每一次购买请求,同步到国外的电子商务网站当中,直接完成真正的购买行为。该模型具有更好的自动性、通用性和稳定性。
电子商务;HttpClient;网络代购;代购同步技术
0 引言
随着电子商务技术的愈发成熟,网络购物的概念已经深入人心,越来越多的人参与到网络购物活动中。人们已不再仅限于通过电子商务网站购买本国的商品,而是想通过网络购物的途径,购得更优质更廉价的国外商品。但是,由于缺少外国银行账号难以支付,语言沟通的障碍,商品卖家不愿将商品寄往国外等诸多客观因素,导致人们无法顺利参与国外电子商务网站的网络购物。于是,网络代购这一种崭新模式电子商务的模式出现并迅速普及开来。通过网络代购的方式,人们可以方便地购买心仪的进口商品,同时可以避免缴纳巨额的进口关税。许多进口商品的高品质和低价格,也吸引更多的人开始参与网络代购。国内网络代购网站的形式和数量,已经发展的十分成熟,有稳定的购买和邮寄渠道。2013年上海自贸区的成立,进一步刺激了网络代购行业的发展。商品代购覆盖的国家数量不断增加,提供许多具有国家特色的商品。现在,人们只需要在代购网站挑选和购买商品,就可以通过代购的方式,获得心仪的进口商品。在代购网站的整个购物操作,与参与普通的网络购物相同。
为了实现此类网络代购,一种针对国外电子商务网站的代理行业应运而生。现阶段主要存在两种代购方式:一种是通过线下委托代理人或者代理公司进行购买,另一种是使用专业的代购网站。前者需要先告知需要的商品,才能获取代购商品的价格和运费等信息,交互性太差,且整个操作流程比较繁杂。而后者因为友好的交互以及便捷的操作,逐渐成为主流方式。人们通过代购网站,如同参与国内网络购物一样,方便地实现与国外网站的同步购买。人们在代购网站上的每次购买操作,均实时地同步到实际的电子商务网站,实现真实的购买。代购网站实现核心功能需要考虑以下几点:1、实时地获取最新的商品信息;2、友好的购物交互体验;3、同步购买操作需要快速和低延时。
针对以上问题,本文提出了一种稳定和通用的代购同步技术实现方法。通过网络爬虫技术,使用HttpClient工具包抓取国外电子商务网站的数据信息用于展示。本地提交出价信息后,自动同步购买操作到商品所在电子商务网站,完成真正的网络购买流程,最后返回代购网站购买成功或失败的信息。该方法适用于代理所有的国外电子商务网站,并且较好地实现了代购网站的核心功能。
1 HttpClient的基本原理与应用
HTTP协议是当今互联网上使用的最重要的协议,绝大部分的Java应用程序都是通过HTTP协议来访问网络资源。在原生态的JDK中,已经提供了访问HTTP协议的基本功能。但是,对于大部分应用程序,JDK库本身提供的功能,过于简单和笨拙,远远无法满足开发的需要。HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议[1]。
HttpClient提供了许多功能组件,设计的非常灵活易用,同时应用的十分广泛。它实现了所有HTTP的方法,如常见的GET、POST、PUT、HEAD等。本文中所应用的主要是其所实现的GET和POST方法。使用GET方法,可以抓取国外电子商务网站对应网页的所有信息,实时并且准确;使用POST方法,可以获取需要的session信息,还可以发送带有session信息的POST请求。
使用 HttpClient实现GET和POST方法相类似,主要区别在于GetMethod的实例与PostMethod的实例设置有些不同。具体步骤如下:首先,创建一个HttpClient的实例,创建并设置GetMethod或者PostMethod的实例。调用创建好的HttpClient实例的 execute 方法来执行创建好的Method实例。读取response。无论执行方法是否成功,释放连接。对得到后的内容进行处理。如图1所示:
图1 HttpClient使用步骤
实现代购同步功能的根本前提,是需要在每次购买商品前,获取商品在国外电子商务网站上最新的数据。所以,我们在每次访问商品时,利用HttpClient的GET方法,抓取商品所在网站的最新数据,展示在代购网站页面,尽可能地保证商品信息的实时性。然后,再使用HttpClient的POST方法模拟登录到国外电子商务网站,获取合法的session,执行购买行为的同步操作。
2 数据同步技术的实现
在代购网站参与网络购物过程中,从登录网站首页,以及点击进入商品的详情展示界面,界面显示的所有商品信息,都是利用数据同步技术将数据同步更新到代购网站的页面。该技术保证了商品信息的实时性,同时无需在代购网站数据库存储所有的商品信息,也无需定期同步更新本地的数据库,极大地减小了数据库的开销。
由于代购网站每次请求获取的页面信息来自指定的URL,同时获取数据的网页布局相对固定,DOM元素不会频繁变更,需要获取的关键字信息比较明确。所以代购网站可以使用爬虫技术,高效地抓取指定页面中的既定抓取目标。
在HttpClient提供的众多功能组件中,我们使用其实现的HTTP功能中的GET方法。使用该方法,我们就可以获取国外电子商务网站对应网页的所有信息。具体实现步骤如下:首先要创建一个HttpClient实例,然后选择使用GET方法,传入待抓取数据的URL地址。再执行GET方法,即可获取目标页面的所有数据并释放链接。最后对获取的数据做有效数据的提取即可。具体实现步骤如图2所示:
图2 HttpClient抓取数据步骤
通过以上步骤,便可以获取所查看商品的最新数据。代购网站将这部分信息展示给用户的同时,也将最新数据存储到本地数据库中,以支持接下来的商品购买行为。
3 代购同步技术的实现
代购同步技术主要是应用在通过代购网站购买国外电子商务网站的商品过程中。在代购网站购买商品的操作同在普通的电子商务网站购物相类似,其过程如图3所示:
图3 代购网站购物步骤
首先,使用个人申请的代购网站的账号,登录到代购网站。从网站首页点击进入到不同商品的详细信息界面,浏览心仪商品的最新信息。然后选择购买商品,代购网站显示购买完成的信息。此时,通过代购网站购买国外电子商务网站商品的操作结束。
HTTP协议的主要特点是它是无状态的,也就是连接的有效期只限于当前请求,请求内容结束后连接就关闭了。因此在所有的电子商务网站服务授权问题上,并不能通过一个普通的URL访问使用网站所提供的功能,而必须要经过注册、登录后才可使用提供的服务。之后的每次访问请求,均需要验证会话的权限。这时就需要通过session来解决此类问题。目前主流的网站技术均是通过session来处理会话信息。为了使本地网站能使用其它网站所提供的功能,就要求程序登录后使用具体功能,这个过程就需要自行处理session。
代购网站实现代购同步功能的第一个难题,就是所有的电子网站的购物功能都只是对注册用户可用的,这种情况下就必须要求使用正确的用户名和口令登录成功后,才可参与网络购买。因为HTTP协议是无状态的,在这种情况下为了保存用户的登录信息,必须使用到session机制。例如Java Web服务器,当浏览器请求一个JSP的页面时,Web服务器会返回一个名为jsessionid参数,值是一个长字符串,这个字符串值也就是当前访问该网站的会话标识,通常使用session存储。之后浏览器每次访问该网站的其他页面时,都会带上jsessionid这样的session信息。应用服务器再根据读取到的session信息,来获取对应的权限信息。
对于需要用户登录的网站,在用户登录成功后,网站会将用户资料保存在服务器的会话中。这样,当用户再访问其他页面时,服务器会根据浏览器发送的session信息,读取
Research and Implementation of Agent Purchase Synchronous Technology Based on HttpClient
Wang Xiaolin
(Rizhao Polytechnic, Rizhao 276800, China)
Internet Shopping agency as a form of e-commerce has developed very mature. People are no longer limited to participating in the online shopping in their own country, but are involving in the purchase of more and more global well-known e-commerce site activities. Due to various reasons, it is difficult to achieve a good result in cross-border online shopping, so the purchasing website that provides purchasing agent services emerged. This paper proposed a synchronization technology for agent purchasing which is purchasing a new model website. First, using HttpClient to crawl pages display data from foreign e-commerce sites to ensure real-time information, reducing the overhead of the system database. Then it uses HttpClient to synchronize every user purchase request to the foreign e-commerce sites which direct the completion of the real purchasing behavior. This model is more automatic, general and stably.
Electronic Commerce; HttpClient; Internet Shopping Agency; Agent Purchase; Synchronous Technology
TP311
A
1007-757X(2014)07-0046-03
王晓琳(1971-),女,日照职业技术学院,讲师,硕士,研究方向:计算机应用技术,计算机网络及应用,日照 276800