发明内容
本发明实施例提供一种讯价方法及装置,以实现向用户实时显示讯价对象正确价格的目的。
为此,本发明实施例提供如下技术方案:
一种讯价方法,其特征在于,所述方法用于使比价购物网站实时显示讯价对象的正确价格信息,所述方法包括:
根据URL识别用户要访问的供应商网站的身份信息;
获取具有所述身份信息的供应商网站的信息抓取规则,并按照所述信息抓取规则从所述供应商网站抓取所述URL对应的商品信息;
确定具有所述身份信息的供应商网站的解析正则,并利用所述解析正则从所述商品信息中解析出价格信息,回传至客户端显示。
优化的,所述根据URL识别用户要访问的供应商网站的身份信息,具体包括:
从所述URL中提取供应商网站的域名信息;
根据所述域名信息从数据库中查找所述供应商网站的身份信息,所述数据库用于保存所述供应商网站的域名信息与身份信息之间的对应关系。
优化的,所述按照所述信息抓取规则从所述供应商网站抓取所述URL对应的商品信息,具体包括:
组织信息抓取参数,所述信息抓取参数包括所述信息抓取规则、供应商网站的身份信息和URL;
向具有所述身份信息的供应商网站发送包含所述信息抓取参数的抓取请求,以从所述供应商网站抓取所述URL对应的商品信息。
优化的,所述信息抓取参数还包括区域信息和/或时效信息;
如果所述信息抓取参数中包含所述区域信息,则利用所述解析正则能从所述商品信息中解析出区域库存状态;
如果所述信息抓取参数中包含所述时效信息,则利用所述解析正则能从所述商品信息中解析出所述价格信息的时效信息。
优化的,确定所述区域信息的方式为:
获取客户端用户的IP地址,并查询所述IP地址的归属地,将所述归属地作为所述区域信息;或者,
接收客户端用户输入的城市信息,将所述城市信息作为所述区域信息。
优化的,所述解析正则存储在配置文件中,且与所述供应商网站的身份信息相对应,则确定所述解析正则的方式为:
在需要解析所述商品信息时,根据所述身份信息从所述配置文件中提取所述解析正则。
优化的,所述方法还包括:
在所述价格信息和/或库存状态和/或时效信息变化时,实时更新所述比价购物网站保存的商品信息。
一种讯价装置,所述装置用于使比价购物网站实时显示讯价对象的正确价格信息,所述装置包括:
识别单元,用于根据URL识别用户要访问的供应商网站的身份信息;
规则获取单元,用于获取具有所述身份信息的供应商网站的信息抓取规则;
信息抓取单元,用于按照所述信息抓取规则从所述供应商网站抓取所述URL对应的商品信息;
解析单元,用于确定具有所述身份信息的供应商网站的解析正则,并利用所述解析正则从所述商品信息中解析出价格信息,回传至客户端显示。
优化的,所述识别单元具体包括:
域名提取单元,用于从所述URL中提取供应商网站的域名信息;
查找单元,用于根据所述域名信息从数据库中查找所述供应商网站的身份信息,所述数据库用于保存所述供应商网站的域名信息与身份信息之间的对应关系。
优化的,所述信息抓取单元具体包括:
参数组织单元,用于组织信息抓取参数,所述信息抓取参数包括所述信息抓取规则、供应商网站的身份信息和URL;
信息抓取子单元,用于向具有所述身份信息的供应商网站发送包含所述信息抓取参数的抓取请求,以从所述供应商网站抓取所述URL对应的商品信息。
优化的,所述参数组织单元组织的信息抓取参数中还包括区域信息和/或时效信息;
如果所述信息抓取参数中包含所述区域信息,则所述解析单元利用所述解析正则还能从所述商品信息中解析出区域库存状态;
如果所述信息抓取参数中包含所述时效信息,则所述解析单元利用所述解析正则还能从所述商品信息中解析出所述价格信息的时效信息。
优化的,所述信息抓取单元还包括:
第一区域信息获取单元,用于获取客户端用户的IP地址,并查询所述IP地址的归属地,将所述归属地作为所述区域信息;或者,
第二区域信息获取单元,用于接收客户端用户输入的城市信息,将所述城市信息作为所述区域信息。
优化的,所述解析正则存储在配置文件中,且与所述供应商网站的身份信息相对应,则所述解析单元确定所述解析正则的方式为:
在需要解析所述商品信息时,根据所述身份信息从所述配置文件中提取所述解析正则。
优化的,所述装置还包括:
更新单元,用于在所述价格信息和/或库存状态和/或时效信息变化时,实时更新所述比价购物网站保存的商品信息。
本发明实施例讯价方法及装置,比价购物网站服务器可以根据用户点击的链接地址确定用户要访问的供应商网站,然后直接去该供应商网站抓取用户想要查看的商品信息,并从中解析出商品价格信息显示给用户查看。这样,用户不仅可以通过比价购物网站获得该商品在该供应商网站的实时价格,还可直接在比价购物网站下单,简化了购物流程,提升了用户购物体验。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。
首先,对本发明实施例讯价方法及装置的应用场景进行简单介绍。
在客户端用户登录比价购物网站后,可以在关键词搜索栏中输入讯价对象,例如用户输入的讯价对象为“iphone4s”,则在用户点击搜索按钮后,比价购物网站就会将其服务器内存储的不同供应商关于“iphone4s”的概述信息结果结合回传至客户端,以列表方式显示给用户查看,参见图1所示的列表显示示意图,此时用户可查看到的信息包括商品图片、供应商以及价格等基本信息。
如果用户查看显示列表比价后,想进一步查看某个供应商针对“iphone4s”的详细商品介绍信息,则可点击商品链接地址(可链接在商品图片和/或链接在商品名称),跳转到商品信息详细介绍页面。与现有技术不同,本发明技术方案在跳转到详细介绍页面后,比价购物网站不仅可以向用户提供讯价对象正确的价格信息,还能向用户提供本地网站下单的服务。
下面详细介绍本发明提供的讯价方法的具体实现过程。
参见图2,示出了本发明实施例讯价方法实施例1的流程图,所述方法包括:
步骤101,根据URL识别用户要访问的供应商网站的身份信息。
在用户点击商品链接地址之后,比价购物网站服务器就可获取到用户当前要访问的商品的URL(Uniform/UniversalResourceLocator,网页地址,URL是因特网上标准的资源的地址),因为URL中包含有要访问的网站的域名,因此可以通过URL识别用户当前要访问的商品源于哪个供应商网站,具体识别过程为:
首先,从所述URL中提取供应商网站的域名信息。完整的URL可包括协议名、域名、站点名、文件名、参数,对于一个符合规范的合法URL来说,比价购物网站服务器是可从中提取出域名信息的。
例如,完整的URL为http://www.test.com/aaa/bbb.aspx?id=5&name=kelli,则“http://”即为协议名,www.test.com即为域名,“aaa”即为站点名,“bbb.aspx”即为页面名(也就是文件名),“id=5&name=kelli”即为参数。
其次,根据所述域名信息从数据库中查找所述供应商网站的身份信息,所述数据库用于保存所述供应商网站的域名信息与身份信息之间的对应关系。
本发明的讯价方法预先设置有一个数据库,用以保存域名信息与供应商网站身份信息间的对应关系,只要提取获得域名信息,即可从该预置的数据库中查找出与之对应的供应商网站的身份信息,从而比价购物网站服务器就可确定出用户当前要访问的是哪个供应商网站,识别出供应商网站的身份信息,就为实时抓取商品信息做好了技术准备。当然,如果未在数据库中查找到与域名信息相对应的供应商网站的身份信息,即可终止讯价过程并提示用户。
需要说明的是,在依据域名信息查找到供应商网站后,还可获取该供应商网站的商品URL正则表达式,对提取的URL的格式进行合法性和有效性检测,如果URL格式符合规范且是有效,则继续下述的讯价流程,否则直接终止讯价流程,并提示用户URL地址出错。例如:
供货商URL |
供货商商品URL正则 |
360buy.com |
http://\\w+.360buy.com/\\d+.html|http://www.360buy.com/product/\\d+.html |
dangdang.com |
http://product.dangdang.com/\\wroduct.aspx\\?product_id=\\d+ |
以360buy.com供货商的URL正则为例,下面对URL格式进行举例说明,http://www.360buy.com/product/1000023352.html即是符合正则规范的URL,或http://book.360buy.com/11041484.html亦符合正则,但对http://mvd.360buy.com/来说则不符合上述正则,此时就可终止讯价流程,向用户提示URL地址错误。
步骤102,获取具有所述身份信息的供应商网站的信息抓取规则,并按照所述信息抓取规则从所述供应商网站抓取所述URL对应的商品信息。
在步骤101确定出用户要访问的供应商网站后,为了能向用户提供商品的正确价格,比价购物网站服务器要实时的去该供应器网站抓取商品信息,以便从中解析出商品价格,为此,比价购物网站服务器至少需要知晓:要去哪个供应商网站抓取(已通过网站的身份信息确定,具体地,可为每个供应商网站分配一个代码,则服务器在此知晓的就是一个代码)、在该网站抓取哪件商品的信息(可通过URL体现)、该网站的抓取规则是什么(因为不同供应商网站的访问方式不尽相同,或为get方式或为post方式,为了准确抓取到网站的商品信息,服务器还需要明确其去网站抓取数据的规则为get方式还是post方式)。
比价购物网站服务器明确上述内容之后,即可去用户想要访问的供应商网站实时抓取商品信息,具体抓取方式此处暂不详述。
步骤103,确定具有所述身份信息的供应商网站的解析正则,并利用所述解析正则从所述商品信息中解析出价格信息,回传至客户端显示。
在步骤102抓取到用户想要访问的供应商网站针对讯价对象的详细商品信息后,即可从中解析获得实时的价格信息。一般情况下,供应商可能会根据市场需求调整商品价格,而不太会调整其它信息(例如商品图片、规格参数等),另外,讯价用户最为关心的可能也是商品的价格,因此本发明可以只从抓取到商品信息中解析出价格信息,发送至客户端显示给用户查看。
具体地,用于解析商品信息的解析正则,可直接写到讯价过程的源程序代码中;也可与源程序代码分离,将解析正则预先存储在配置文件中,在需要时去配置文件中提取。因为供应商网站可能出现改版情况,这种将解析正则与源代码分离的处理方式,就能有效解决供应商网站频繁改版造成的后期维护困难问题。
不同供应商的商品信息版面风格是不同的,这就决定了每个供应商的解析正则也是有差异的。例如:
当当网解析格式:
卓越网解析格式:
为了从抓取的商品信息中解析出正确的价格信息,首先需要确定用户想要访问的供应商网站的解析正则,具体地,在需要解析所述商品信息时,可依据供应商网站的身份信息在配置文件中查找,提取出与之相对应的解析正则。
本发明实施例讯价方法,在用户点击链接地址想要查看详细商品信息时,比价购物网站服务器不是直接将保存的商品信息推送到客户端显示,也不是直接跳转到供应商网站,由供应商网站服务器向用户推送商品信息,而是根据链接地址确定用户要访问的供应商网站,然后直接去该供应商网站抓取用户想要查看的商品关键信息,并从中解析出最有可能发生变化的商品价格信息,以该价格为最终的正确价格显示给用户查看。这样,一方面用户可以通过比价购物网站获得该商品在该供应商网站的实时价格;另一方面因为在讯价过程中不需跳转到供应商网站,因此用户可直接在比价购物网站下单甚至付款,而无需注册不同供应商网站,作为一种全新的网上购物模式,其简化了购物流程,提升了用户购物体验。
另外,需要说明的是,在用户查看供应商针对讯价对象的详细商品介绍信息时,为了提升用户体验,比价购物网站服务器可以先将其保存的不太可能发生变化的商品信息(例如商品名称、商品图片、商品简介、规格参数等)发送到客户端显示,并在此过程中进行实时讯价,最后将正确的价格信息也发送到客户端显示。这样客户端用户就无需等待过长时间,提升了用户体验。
下面对步骤102中抓取商品信息的过程进行简单介绍。
为了准确的抓取到用户想要访问的供应商网站提供的商品信息,在比价购物网站服务器知晓了要去哪个供应商网站抓取哪件商品的信息以及该网站的抓取规则之后,即可利用所述信息抓取规则、供应商网站的身份信息和URL组织信息抓取参数,并将包含该抓取参数的抓取请求发送给用户想要访问的供应商网站,以从该网站抓取到用户想要访问的商品信息,即用户点击的链接地址所对应的商品信息。
此外,供应商网站可能因为举行活动而调整商品的价格,而调整后的价格仅在活动期间有效,因此,在组织信息抓取参数时,还可考虑时效信息这一参数。如果信息抓取参数中包含抓取规则、身份信息、URL以及时效信息,则在抓取到商品信息后,不仅要通过解析正则解析出商品的价格信息,还需要解析获得价格信息的有效时限,同时将二者推送到客户端显示给用户查看。
需要说明的是,本发明的讯价方法除了可以实时向用户显示正确的价格信息之外,还可进一步向用户实时显示商品的区域库存状态。因为商品的库存状态往往会随着地域信息有所变化,例如,在北京地区处于有货状态的商品,在上海地区则可能为无货状态,亦或者是,即使在北京地区和上海地区均为有货状态时,二者的库存量也有可能不同,因此可以通过获取用户所在地的区域信息的方式,查询商品当前的库存状态并显示给用户。此时,信息抓取参数中还应包括地域信息(完整的信息抓取参数包括抓取规则、身份信息、URL以及地域信息,或者完整的信息抓取参数包括抓取规则、身份信息、URL、时效信息以及地域信息),这样比价购物网站服务器就可以从供应商网站抓取到针对指定区域的讯价对象的商品信息,尤其是该商品信息中还包含区域库存状态,这样利用解析正则还能从该商品信息中提取出库存状态信息。至此,利用本发明讯价方法能实时向用户显示的信息可包括价格信息,或者可包括价格信息和库存信息,或者可包括价格信息、失效信息和区域库存信息。
具体地,本发明讯价方法中用以确定区域信息的方式可体现为:
(1)获取客户端用户的IP地址,并查询所述IP地址的归属地,将所述归属地作为所述区域信息。
这种方式不需要用户的参与,当用户登录比价购物网站之后,服务器就自动获取该用户的IP,进而自动确定出用户的区域信息,这种方式主要适合于用户的登录地与收货地相同的情况。
(2)接收客户端用户输入的城市信息,将所述城市信息作为所述区域信息。
这种方式需要用户的参与,比价购物网站服务器并不自动获取用户的区域信息,而是向用户提供层级区域选择功能,由用户根据实际情况从中选择一个合适的城市作为其区域信息。所谓根据实际情况选择,可以理解为根据收货地选择。这样,利用本方式确定的区域信息既可能是用户的登录地(登陆地与收货地相同的情况下),又可能是收货地(登录地与收货地不同的情况下),提高了区域信息确定过程的灵活性。
(3)综合上述两种方式。
这种方式可能需要用户的参与,在用户登录比价购物网站服务器之后,服务器仍会自动获取用户IP地址,并将IP地址的归属地作为初始区域信息;同时比价购物网站还向用户提供层级区域选择功能,并实时监测用户的操作动作。如果用户没有重新选择城市,则将通过IP地址确定的归属地最为该名用户的最终区域信息;如果用户重新选择了城市,则将选择的城市作为该名用户的最终区域信息。例如,通过IP地址归属地确定的区域信息为北京,如果比价购物网站在为用户提供服务的过程中,用户通过复选框选择了上海,则更新区域信息为上海,这样,比价购物网站服务器最终推送给用户的就是商品在上海的库存状态。这种方式既提高了区域信息确定过程的灵活性,又能最大程度的简化用户的操作过程(相对第二种确定方式,如果用户的登录地与收货地相同,则无需手动操作设置区域信息)。
参见图3,示出了本发明实施例讯价方法实施例2的流程图,所述方法包括:
步骤201,根据URL识别用户要访问的供应商网站的身份信息。
步骤202,获取具有所述身份信息的供应商网站的信息抓取规则,并按照所述信息抓取规则从所述供应商网站抓取所述URL对应的商品信息。
步骤203,确定具有所述身份信息的供应商网站的解析正则,并利用所述解析正则从所述商品信息中解析出价格信息,回传至客户端显示。
步骤201~203与步骤101~103相同,此处不再赘述。
需要说明的是,步骤203仅说明的是如何解析获取商品的价格信息,除此之外,如果组织信息抓取参数时还考虑了时效信息,则解析正则从抓取到的商品信息中还能解析出价格的时效信息;如果组织信息抓取参数时还考虑了区域信息,则解析正则从抓取到的商品信息中还能解析出商品的库存状态。具体过程与实施例1的实现过程相同,此处不再赘述。
步骤204,在商品的价格信息和/或库存状态和/或时效信息变化时,实时更新所述比价购物网站保存的商品信息。
比价购物网站向用户提供的讯价服务可分为两部分,第一部分是根据用户输入的讯价对象,为用户搜索并显示不同供应商网站对讯价对象的概述信息,这部分信息是由比价购物网站服务器提供给用户的;第二部分是根据用户的选择,为用户显示某个供应商网站对讯价对象的详细介绍信息,这部分信息是由比价购物网站服务器直接去供应商网站实时抓取的。因为比价购物网站服务器是间隔一定的更新周期才会去其集成的供应商网站抓取数据,以更新其内部保存的信息,因此就可能存在第一部分显示给用户的信息与第二部分信息给用户的信息不同的情况。为了尽量保证第一部分提供给用户的信息的准确性,在比价购物服务器实时抓取的商品信息发生变化时,就自动更新服务器内保存的商品信息,而不是等下一次更新周期到来才去抓取信息并更新服务器保存的数据。
例如,比价购物网站服务器根据更新周期(假设更新周期为48小时),在2012.08.12的00:00去京东商城抓取了其关于“iphone4s”的商品信息,并保存在本服务器内,此时商品信息中的价格信息为4799元。出于某种需要,京东商城在2012.08.13的00:00调整商品价格为4751元,如果用户在2012.08.13的上午10:00利用本比价购物网站进行商品讯价时,则比价购物网站在第一部分提供给用户的价格为4799元,在第二部分提供给用户的价格为4751元,前后并不一致,且4751元才是京东商城当前关于“iphone4s”的真实价格。为了尽量减少前后两部分出现价格差的现象,可以利用实时抓取到的商品信息更新服务器内保存的商品信息,即将价格信息更新为4751元,而不是等到满足更新周期(2012.08.14的00:00)才更新,这样其它用户在2012.08.13上午10:00到2012.08.14的00:00这段时间内,通过比价购物网站进行商品讯价时,不论是在讯价服务的第一部分还是第二部分,提供给用户的价格均为4751元。
参见图4,示出了本发明实施例讯价装置实施例1的示意图,所述装置用于使比价购物网站实时显示讯价对象的正确价格信息,所述装置包括:
识别单元301,用于根据URL识别用户要访问的供应商网站的身份信息。
具体地,所述识别单元可包括:
域名提取单元,用于从所述URL中提取供应商网站的域名信息;
查找单元,用于根据所述域名信息从数据库中查找所述供应商网站的身份信息,所述数据库用于保存所述供应商网站的域名信息与身份信息之间的对应关系。
规则获取单元302,用于获取具有所述身份信息的供应商网站的信息抓取规则。
信息抓取单元303,用于按照所述信息抓取规则从所述供应商网站抓取所述URL对应的商品信息。
具体地,所述信息抓取单元可包括:
参数组织单元,用于组织信息抓取参数,所述信息抓取参数包括所述信息抓取规则、供应商网站的身份信息和URL;
信息抓取子单元,用于向具有所述身份信息的供应商网站发送包含所述信息抓取参数的抓取请求,以从所述供应商网站抓取所述URL对应的商品信息。
解析单元304,用于确定具有所述身份信息的供应商网站的解析正则,并利用所述解析正则从所述商品信息中解析出价格信息,回传至客户端显示;
所述解析正则存储在配置文件中,且与所述供应商网站的身份信息相对应,则所述解析单元确定所述解析正则的方式为:在需要解析所述商品信息时,根据所述身份信息从所述配置文件中提取所述解析正则。
本发明实施例讯价装置,实时监测用户的操作,并根据用户点击的链接地址确定用户要访问的供应商网站,然后直接去该供应商网站抓取用户想要查看的商品信息,从中解析出最有可能发生变化的商品价格信息,以该价格为最终的正确价格显示给用户查看。这样,一方面用户可以通过比价购物网站获得该商品在该供应商网站的实时价格;另一方面因为在讯价过程中不需跳转到供应商网站,因此用户可直接在比价购物网站下单甚至付款,而无需注册不同供应商网站,作为一种全新的网上购物模式,其简化了购物流程,提升了用户购物体验。
除此之外,可能当前显示给用户的价格信息是因为供应商网站举行活动导致的,且这一价格信息仅在活动期间有效,因此还有必要向用户显示价格信息的有效信息,因此所述参数组织单元组织的信息抓取参数中还应包括时效信息,这样利用解析正则从抓取到的商品信息中才能解析出商品的价格信息以及价格的时效信息,并同时显示给用户查看。
同样地,利用本发明的讯价装置还能向用户提供商品的库存状态,此时所述参数组织单元组织的信息抓取参数中就要包括区域信息(此时,完整的信息抓取参数包括抓取规则、身份信息、URL以及地域信息,或者包括抓取规则、身份信息、URL、时效信息以及地域信息),这样利用解析正则从抓取到的商品信息中就能解析出商品的库存状态,并显示给用户查看。
如果讯价装置具有向用户提供商品库存状态的功能,那么信息抓取单元303还应包括一个能获取区域信息的单元,具体可体现为:
第一区域信息获取单元,用于获取客户端用户的IP地址,并查询所述IP地址的归属地,将所述归属地作为所述区域信息;或者,
第二区域信息获取单元,用于接收客户端用户输入的城市信息,将所述城市信息作为所述区域信息。
参见图5,示出了本发明实施例讯价装置实施例2的示意图,所述装置用于使比价购物网站实时显示讯价对象的正确价格信息,所述装置包括:
识别单元401,用于根据URL识别用户要访问的供应商网站的身份信息;
规则获取单元402,用于获取具有所述身份信息的供应商网站的信息抓取规则;
信息抓取单元403,用于按照所述信息抓取规则从所述供应商网站抓取所述URL对应的商品信息;
解析单元404,用于确定具有所述身份信息的供应商网站的解析正则,并利用所述解析正则从所述商品信息中解析出价格信息,回传至客户端显示;
更新单元405,用于在所述价格信息和/或库存状态和/或时效信息变化时,实时更新所述比价购物网站保存的商品信息。
本发明方案可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序单元。一般地,程序单元包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明方案,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序单元可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本发明实施例进行了详细介绍,本文中应用了具体实施方式对本发明进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及设备;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。