CN104685490A - 结构化和非结构化数据自适应分组的系统和方法 - Google Patents

结构化和非结构化数据自适应分组的系统和方法 Download PDF

Info

Publication number
CN104685490A
CN104685490A CN201380049781.7A CN201380049781A CN104685490A CN 104685490 A CN104685490 A CN 104685490A CN 201380049781 A CN201380049781 A CN 201380049781A CN 104685490 A CN104685490 A CN 104685490A
Authority
CN
China
Prior art keywords
uri
attribute
price
analysis result
content
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201380049781.7A
Other languages
English (en)
Other versions
CN104685490B (zh
Inventor
萨蒂亚纳拉亚纳·拉奥·卡利基瓦伊
拉杰什·穆帕拉
桑贾伊·帕塔萨拉蒂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Because Of Otto Dix Co
Original Assignee
Because Of Otto Dix Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Because Of Otto Dix Co filed Critical Because Of Otto Dix Co
Publication of CN104685490A publication Critical patent/CN104685490A/zh
Application granted granted Critical
Publication of CN104685490B publication Critical patent/CN104685490B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0201Market modelling; Market analysis; Collecting market data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Finance (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Engineering & Computer Science (AREA)
  • Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

从经由URI访问的网页获取内容,从URI队列获取该URI。根据解析映射将该内容解析为价格和产品信息,并且存储所生成的解析结果。基于对针对价格和产品属性上的变化的解析结果的分析以及根据其他标准调整URI队列中的URI的优先级。该解析映射可以是与URI相关联的映射或者是通用解析映射。该解析结果可以由基于人工和基于机器的系统进行验证,包括用于人工确认或校正的该内容中由图表标记的价格和产品信息。

Description

结构化和非结构化数据自适应分组的系统和方法
技术领域
本公开涉及用于从网络上的第三方来源有效地获取信息并且用于将该信息解析成价格、产品以及其他信息的方法和系统。
背景技术
以下描述包括可以用于理解本发明的信息。但并不承认在本文中提供的信息是现有技术或者与目前本发明要求保护的权利相关,也不承认明确或隐含地引用的任何出版物为现有技术。
诸如Google、Bing等搜索引擎在网络上搜索出大量信息并且将大量信息编入索引。“网络爬虫(Crawler)”(亦称“爬行器(spider)”)利用从“队列”获取的URL,以通常从网页获取内容。网络爬虫或其他软件存储一些内容并且将一些内容编入索引。然后,用户可以搜索编入索引的内容,查看结果并且跟随超链接返回原始来源、或者返回至所存储的内容(所存储的内容被称为“高速缓存”)。然而,爬行和索引的计算资源并非是无限的。URL队列通常按优先次序排序的,以引导网络爬虫进入可以容纳该通信量的网页服务器,这些服务器不阻止网络爬虫(诸如,根据通常可从网页服务器获取的“robots.txt”文件),其经历来自用户的更大的通信量,并且经历更多内容上的变化。
然而,传统的搜索引擎并未集中于价格和产品信息。如果在网页上价格改变,但是网页的其余部分依然一样,则传统的网络爬虫(或队列管理器)无法区分队列中的网页位置的优先顺序,这通常是因为价格是整体内容的很小的一部分,并且该变化未被标记为重要的;相反,如果网页改变,但是价格和/或产品信息依然不变,那么由于内容的总体变化,尽管该价格和产品信息保持不变,但网页内容的变化可以促使传统的网络爬虫区分队列中的网页位置的优先顺序。
附图说明
图1为示出根据在本论文中公开的实施方式配置的示例性计算装置的网络和装置示图。
图2为示例性因迪克斯(Indix)服务器200计算装置及其一些数据结构和/或元件的功能方框图;
图3为在图2的计算装置中示出的因迪克斯数据存储器300的功能方框图。
图4为示例性爬行代理400计算装置及其一些数据结构和/或元件的功能方框图。
图5为在图4的计算装置中示出的爬行代理数据存储器500的功能方框图。
图6为示出URI检验程序600的实施方式的流程图,其中,爬行代理400从URI队列355中获取URI 305并且获取URI内容实例310。
图7为示出用于解析URI内容实例310并且保持解析结果325的解析器程序700的实施方式的流程图。
图8为示出用于识别包含价格或产品属性的URI 305并且将URI添加至URI队列355中的播种机程序800的实施方式的流程图。
图9A和图9B为示出URI队列管理器程序900的实施方式的流程图。
图10为示出解析映射验证程序1000的实施方式的流程图。
图11为示出具有与使用属性名称标记的属性相对应的HTML和CSS元素的网页的浏览器窗口的示图。
图12为示出MPID分配器程序1200的实施方式的流程图。
具体实施方式
以下具体实施方式部分提供了用于理解本技术的各种实例的具体细节。本领域的技术人员将理解的是,无需很多这种细节也可以实践本技术。在某些情况下,没有详细地或者根本没有示出或描述结构和功能,以免使本技术的实例的描述不必要地晦涩难懂。其目的在于,即使与本技术的某些实例的详细描述相结合使用,也通过其最广泛的合理方式解释在下面提出的描述中使用的术语。虽然下面可以强调某些术语,但是在这个具体实施方式部分中同样明显地并且明确地限定旨在通过任何限制的方式解释的术语。
除非上下文另有明确要求,否则在整个描述和权利要求中,措辞“包括(comprise)”、“包含(comprising)”等以包含的意义进行解释,而非以排他或穷举意义进行解释;即,在“包括但不限于”的意义上。如在本文中所使用的术语“连接”、“耦接”或其任何变体意指在两个或多个部件之间的任意的直接或间接连接或耦接;元件之间连接的耦接可以是物理上的、逻辑上的或其组合。此外,措辞“在本文中”、“上述”、“下述”以及具有相似意义的措辞在本申请中使用时,应整体上指代本申请,而非指代本申请的特定部分。在上下文允许时,使用单数的措辞也可以包括复数,而使用复数的措辞也可以包括单数。关于两个或多个物品的列表,措辞“或者”涵盖该措辞的以下所有解释:在该列表中的任何物品、在该列表中的所有物品以及在该列表中的一个或多个物品的任何组合。
在几幅图中,某些部件具有相同的大写元素文本,但是具有不同的元素编号。在本文中使用大写元素文本(但是未使用元素编号)表示时,虽然基于在其中出现元素的各种实施方式的计算装置,但会具有差异,但是这些引用应理解为基本上相同,并且表示具有相同的大写元素文本的任何元素。
如在本文中所使用的统一资源标识符(“URI”)是用于识别计算装置和/或网络(例如,互联网)上的资源的字符串。这种识别能够使用特定协议来与资源的表示交互。指定语法及相关联协议的“方案(Scheme)”限定各个URI。
在由互联网工程任务组(“IETF”)发布的请求注解(“RFC”)备忘录3986内定义了URI方案的通用语法。根据RFC 3986,URI(包括URL)由四个部分构成:
<方案名称>:<分层部分>[?<查询>][#<片段>](<scheme name>:<hierarchical part>[?<query>][#<fragment>])
URI以表示用于在该方案内分配标识符的规格的方案名称(schemename)开始。方案名称包括字母,随后是字母、数字以及加号(“+”)、句号(“.”)或连字符(“-”)字符的任何组合;并且以冒号(“:”)结束。
URI的分层部分(hierarchical portion)旨在保存本质上分层的识别信息。通常,这部分绘制有双斜杠(“//”),然后绘制有可选的主机(authority)部分和可选路径。
可选的主机部分保存以“”(例如,用户名:密码)结束的可选的用户信息部分(未示出)、主机名称(即,域名或IP地址,在此处为“example.com”)以及位于冒号“:”之后的可选端口号。
路径部分是由斜杠(“/”)分开的一系列的两个或多个部分(在概念上与目录相似,虽然不必表示目录)。如果URI包括主机部分,那么该路径部分可以空着。
可选的查询部分标记有问号并且包含本质上无需分层的额外的识别信息。路径部分和查询部分共同在URI方案和主机的范围内识别资源。一般不限定查询字符串语法,而是通常作为由分号或&号分开的一系列0或多个<键>=<值>(<key>=<value>)对来进行组织,例如:
键1=值1;key2=值2;键3=值3(;)或者
键1=值1&键2=值2&键3=值3(&)
从提供与URI的语法和结构相关的额外信息的RFC 3986提取大部分以上信息。出于所有目的,通过引用将RFC 3986结合于此。
通常,虽然非排他地参照万维网,但是在本文中所使用的“爬行代理”是通常在服务器上或者由服务器执行的处理,该服务器请求网络上的其他服务器的内容。如在图1中示出了作为爬行代理400的爬行代理1至N的实例;可以具有并且可以由该示图来表示多个爬行代理400。
如本文中所使用的“产品”应被理解为意指“产品或服务”。在本文中所引用的“产品属性”应被理解为意指“产品或服务属性”。
如在本文中所使用的“iPID”或iPID 330是在因迪克斯系统内分配给针对产品的URI的唯一标识符。例如,iPID 330可以是URI 305的散列(hash)。
如在本文中所使用的“主iPID”或“MPID”或MPID 332是由MPID分配器程序1200分配给产品的iPID 330。虽然可以由多方来分配和销售产品,但是MPID通常旨在识别通常由共同的制造商生产的单个产品。
iPID和MPID与价格属性340记录和产品属性345记录相关联。
价格属性340记录可以包括一个或多个记录,该一个或多个记录例如包括:将可以是用于在特定时间观察到的价格的标识符的iPRID编码的值、(上文论述的)iPID、产品名称(在该记录中的“产品名称”值还可以在本文中被称为“产品”)、标准价格、销售、价格、返利额、价格指导记录(包含与价格相关的特别指导,诸如该价格仅仅适合于学生)、币种、日期和时间戳、税务记录、运输(shipping)记录(表示与至不同位置的运输相关的成本,无论是否根据运输成本等计算税款等)、价格有效期起始日期、价格有效期结束日期、数量、测量类型的单位、测量值的单位、商户名称(具有可购买产品的商户的名称;在该记录中的“商户名称”值在本文中还可以被称为“商户”)、商店名称(一个商户可以具有多个商店;在该记录中的“商店名词”值在本文中还可以被称为“商店”)、用户ID、数据信道(表示价格属性340记录的来源,诸如网上爬行、众包(crowdsource)、价格信息的持牌供应商或者来自商户)、来源细节记录(例如,表示URI、报纸广告)、可用性标志、促销代码、捆绑细节记录(表示作为一部分捆绑的产品)、条件类型记录(表示新的、使用过的、差的、良好的以及类似的记录)、社会等级记录(表示该价格的“相似物”或类似物的等级)、投票/相似物记录(表示价格或产品接收的多个“相似物”或类似物)、价格等级记录、能见度指示器记录(表示公众是否可以看见价格、是否仅仅商户可以看见价格等)、供应链参考记录(表示在供应链中是否从零售商、批发商或者另一方中获得价格)、销售位置(表示通过该价格可获得的产品的地理位置)、制造位置记录(表示产生或制造产品)、发行日期记录(表示产品上市的时间)、以及产品时代记录(表示用户使用产品的时间)。以上术语(例如,产品、价格、商户、商店、来源细节等)在本文中大写时旨在表示在价格属性340记录中的值。
例如,产品属性345记录可以包括将产品的特征编码或者描述产品的值。虽然仅仅几十或几百列可以适用于任何规定的产品,但是整个产品属性345图式可以包括几千列。在针对戒指的产品属性345记录中的一组实例值如下:标题:“纯银钻石&蓝色黄玉指环”;商标:“蓝色尼罗河”;类别(例如,在类别方案中的类别335):“戒指”;金属名称:“银”;石头形状:“垫石”;石头名称:“黄玉”;宽度:“3mm”;石头颜色:“蓝色”;产品类型:“戒指”;诞生石:“9月”;以及设定类型:“尖头”。针对鞋子的一组实例产品属性345如下:品牌:“爱世克斯”;类别(例如,在类别方案中的类别335):“男士运动鞋&运动”;鞋码:“8”;产品类型:“摔跤鞋”;颜色:“黑色”;鞋子款式:“运动鞋”;运动:“运动”;鞋帮材料:“网格”。以上术语在本文中大写时旨在表示在产品属性345记录中的值。
如在本文中所使用的“内容”包括文本、图形、图像(包括静止和视频图像)、音频、图形设置以及图形设置的指令,包括可以(例如)由浏览器应用解释的HTML和CSS指令。
如在本文中所使用的“列表页面(Listing Page)”是包含与多个iPID相关联的信息的网页。
如在本文中所使用的“产品页面(Product Page)”是包含与单个IPID相关联的信息的网页。
如在本文中所使用的“事件”是通常在新闻或当前事件中的信息。可以在内容中找出事件。列表页面、产品页面以及事件页面均是网页类型350的实例。
通常,爬行代理400包含来自由网络服务器115所服务的网页的诸如URI内容实例310的内容。爬行代理400经由URI 305访问网页,由爬行代理400从URI队列355获取该URI。由因迪克斯服务器200通过执行解析器程序700、播种机程序800以及URI队列管理器程序900来保持URI队列355。解析器程序700根据解析映射315为诸如价格属性340和产品属性345(在本文中共同称为“属性340/345”)的价格和产品信息解析URI内容实例310,并且存储解析结果325。播种机程序800识别包含属性340/345的URI 305并且将URI添加入URI队列355。在最后爬行URI时,例如根据解析结果325以及与iPID 330相关联的所观察到的属性340/345的变化的分析、搜索解析结果325的用户是否表示对iPID 330、MPID 332或与解析结果325相关联的类别335感兴趣、网络服务器115的功能的或声明的可用性、与iPID 330相关联的类别335的属性340/345(例如,“价格”属性)的变化、解析结果325是否与列表页面或产品页面一致、或者另一个网页类型350等因素,并且根据其他标准,URI队列管理器程序900在URI队列355中调整各个URI 305的下一次检验360的时间。
基于是否具有与URI 305相关联的现有解析映射315来选择应用于URI内容实例310以将URI内容实例310转换成解析结果325的解析映射315,并且iPID 330与URI 305(或者等价iPID 334)相关联或者与网站、域名、电子商务平台(可以由电子商务平台160提供)或者与关联于URI或URI内容实例310的其他解析映射确定器320相关联。如果没有与URI305相关联的解析映射315,那么可以选择一个或多个通用解析映射315,并且这些解析映射用于将URI内容实例310转换成解析结果325。可以选择多个解析映射315,针对数据类型所筛选的其结果是失配的,并且将验证其结果并且设定为修改后的解析结果325。
可以基于人工和基于机器的系统对解析映射315和解析结果325进行验证。通过在网页或其他图形通信介质中用图表标记解析结果325来解析映射验证程序1000帮助进行基于人工的验证,用于人工确认或校正。参照图10论述解析映射验证程序1000,而参照图11说明和论述了解析映射验证程序1000的实施方式的输出的实例。
图1为示出根据在本论文中公开的实施方式配置的示例性计算装置的网络和装置示图。在图1中示出了因迪克斯服务器200和因迪克斯数据库300。因迪克斯服务器200可以执行集群管理器程序260,以管理爬行代理400的集群以及因迪克斯服务器200的实例的集群。参照图7中一步论述了因迪克斯服务器200还可以执行解析器程序700,以将URI内容实例310解析为解析结果325。参照图8进一步论述了因迪克斯服务器200还可以执行播种机程序800,以将新的URI添加至URI队列355;参照图9进一步进行论述执行URI队列管理器程序900,以管理URI队列355;以及参照图10和图11进一步进行论述了执行解析映射验证程序1000以对解析结果325进行验证。
因迪克斯数据库300示出为包括例如可以在Hadoop分布式文件系统中存储URI内容实例310的HDFS数据库130、以及例如可以在HBase非关系分布式数据库中存储解析结果325的HBASE数据库135。参照图3进一步论述因迪克斯数据库300。
在图1中还示出了爬行代理400(表示爬行代理1至N)以及爬行代理数据库500。爬行代理400(包括代理1至N)可以执行URI检验程序600。参照图4进一步论述了爬行代理400。
在图1中还示出了诸如移动或非移动计算机装置的客户端装置105。客户端装置105是计算装置的实例,例如,诸如移动电话、平板电脑、膝上型电脑、个人电脑、游戏电脑或媒体播放电脑。客户端装置105表示能够在浏览器或相同的用户界面中显示内容的任何计算装置。客户端装置由“用户”使用。客户端装置105可以被用于搜索解析结果325并且验证和改善与URI 305相关联的解析映射315。
在图1中还示出了网络服务器115,该服务器可以响应于URI(例如,URI 305)对以网页或等效输出形式的内容进行服务。
在图1中还示出了电子商务平台160,该电子商务平台可以提供电子商务业务,例如,通过包括HTML和CSS元素的网页模板托管(hosting)的网站和/或网页。电子商务平台160的客户可以使用内容来完成网页模板并且例如为来自网络服务器115的网页和网站进行服务。
例如,相对于其他机器通过使用证书来对机器或用户进行认证和授权,可以实现在图1中所示的装置之中的交互。
在图1中,计算机器可以物理上分开计算装置或者在逻辑上分开由共同的计算装置执行的处理。在图1中示出的某些元件虽然可以通过网络150进行连接,但是这些元件彼此直接连接(例如,因迪克斯数据库300至因迪克斯服务器200)。如果这些元件被包括在单独的计算机中,则可以将额外的步骤添加入所公开的发明中,以便叙述元件之间的通信。
网络150包括计算机、计算机之中的网络连接以及软件程序,以便能够通过网络连接在计算机之间进行通信。网络150的实例包括以太网、因特网和/或无线网络,例如,GSM、TDMA、CDMA、EDGE、HSPA、LTE或者由无线服务提供商或电视广播设备所提供的其他网络。可以经由Wi-Fi连接来连接至网络150。在所显示的装置之间的通信会话中可以涉及一个以上的网络。与网络150的连接可以要求计算机执行软件程序,例如,该软件程序能够在无线电话网络中具有计算机网络或等价物的OSI模型的七个层。
该论文可以论述第一计算机,该第一计算机连接至第二计算机(诸如与因迪克斯服务器200连接的爬行代理400)或者与相应的数据存储器(诸如至因迪克斯数据库300);应理解的是,这种连接可以连接至、穿过或者经由这两个元件中的另一个(例如,计算装置与因迪克斯服务器200连接或者将数据发送给因迪克斯服务器200连接的声明应被理解为表示计算装置可以与因迪克斯数据库300相连接或者将数据发送给因迪克斯数据库300)。在本文中所引用的“数据库”应被理解为与“数据存储器”相同。虽然示出为在一个物理单元上集成的元件,但是计算机和数据库可以由共同的(或分离的)物理硬件和共同的(或分离的)逻辑处理器以及存储器元件提供。虽然在一个计算装置内进行论述,但是软件程序以及软件程序所使用的数据组例如可以通过应用程序虚拟化而相对于任何计算机进行远程存储和/或执行。
图2为示例性因迪克斯服务器200计算装置及其一些数据结构和/或部件的功能方框图。在图2中的因迪克斯服务器200包括至少一个处理单元210、因迪克斯服务器存储器250、显示器240以及输入245,所有这些元件经由总线220与网络接口230互连。处理单元210可以包括一个或多个通用中央处理单元(“CPU”)212以及一个或多个专用图形处理单元(“GPU”)214。通过操作系统255可以利用处理单元210的元件,用于由因迪克斯服务器200执行的程序所需要的不同功能。网络接口230可以用于与网络150形成连接或者与其他计算机形成装置间的连接。因迪克斯服务器存储器250通常包括随机存取存储器(“RAM”)、只读存储器(“ROM”)以及永久性大容量存储设备,诸如磁盘驱动器或SDRAM(同步动态随机存取存储器)。
因迪克斯服务器存储器250存储用于软件程序的程序代码,该软件程序例如是分析程序400、核心价格程序500、洞察力程序600、波动性程序700、替代程序800、混合程序900、预测程序1000、竞争程序1100、促销程序1200、领先程序1300、溢价程序1400、价格范围程序1500、所及范围程序1600和用户联系人程序1700;以及例如浏览器、电子邮件客户端和服务器程序、客户端应用程序以及数据库应用程序(下面进一步进行讨论)。用于程序(诸如用于网络服务器和网络浏览器)的额外数据组还可以出现在图1中所示的因迪克斯服务器200和其他计算机上并且由它们执行。网络服务器和浏览器程序可以提供用于计算装置之间的交互的界面,例如通过可以服务以网页和html文档或文件形式的数据和信息并且对其做出响应的网络服务器和网络浏览器程序。浏览器和网络服务器通常旨在说明机器和用户界面以及启用机器和用户界面的程序,并且可以由等效程序替代,用于为在计算装置(无论是在网络浏览器中还是在例如移动装置应用程序中)中的界面,并且在这些界面中服务和显示信息。
另外,因迪克斯服务器存储器250还存储操作系统255。可以使用与永久性计算机可读存储介质295(诸如软盘、磁带、DVD/CD-ROM驱动器、记忆卡或者其他相似的存储介质)相关联的驱动机构(未示出)将这些软件元件从非临时性计算机可读存储介质295加载至计算装置的因迪克斯服务器存储器250中。在一些实施方式中,软件要素还可以或替代性地经由通过除了驱动机构和计算机可读存储介质295以外的机构(例如,经由网络界面230)进行加载。
计算装置200例如还可以包括硬件支持输入模块,输入245,诸如触摸屏、照相机、键盘、鼠标、轨迹球、唱针、运动检测器以及麦克风。输入245还可以用作显示器240,如在触摸屏显示器的情况中一样,该触摸屏显示器还用作输入245并且可以通过具有输入245的表面的指针或唱针对具有接触形式的输入做出响应。
计算装置200还可以包括因迪克斯数据存储器300或者经由总线220与因迪克斯数据库300进行通信,在图3中进一步进行说明。在各种实施方式中,总线220可以包括存储区域网(“SAN”)、高速串行总线和/或经由其他合适的通信技术。在一些实施方式中,因迪克斯服务器200可以经由网络接口230与因迪克斯数据存储器300进行通信。在一些实施方式中,因迪克斯服务器200可以包括比在该示图中示出的元件更多的元件。然而,不需要示出所有这些大体上传统的元件,以便公开示例性实施方式。
图3为在图2的计算装置中示出的因迪克斯数据存储器300的功能方框图。因迪克斯数据存储器300的要素是由程序使用的数据组,并且在论述其他示图时在本文中进一步进行论述。由在图3中示出的程序所使用的数据组可以由在列中的单元或在数字文档或文件内定义的结构中与其他值分开的值表示。虽然在本文中被称为个别记录或条目,但是这些记录可以包括一个以上数据库条目。数据库条目可以是、表示或者编码数字、数字运算符、二进制值、逻辑值、文本、字符串运算符、接合点、条件逻辑、测试以及相似物。
图4为示例性爬行代理400计算装置及其一些数据结构和/或部件的功能方框图。在图4中的爬行代理400包括至少一个处理单元410、爬行代理存储器450、显示器440以及输入445,所有这些部件通过总线420与网络接口430互连。处理单元410可以包括一个或多个通用中央处理单元(“CPU”)412以及一个或多个专用图形处理单元(“GPU”)414。操作系统455可以将处理单元410的部件用于由爬行代理400执行的程序所需要的不同功能。网络接口430可以用于与网络150形成连接或者与其他计算机形成装置间连接。爬行代理存储器450通常包括随机存取存储器(“RAM”)、只读存储器(“ROM”)以及永久的大容量存储设备,例如,磁盘驱动器或SDRAM(同步动态随机存取存储器)。
爬行代理存储器450存储用于软件程序的程序代码,例如,该软件程序诸如URI检验程序600以及例如浏览器、电子邮件客户端和服务器程序、客户端应用程序以及数据库应用程序(下面进一步进行论述)。诸如用于网络服务器和网络浏览器的用于程序的额外数据组还可以出现在图1中所示的爬行代理400和其他计算机上并且由它们执行。网络服务器和浏览器程序可以提供计算装置之中进行交互的界面,例如用于通过可以服务具有网页和html文档或文件的形式的数据和信息并且对其做出响应的网络服务器和网络浏览器程序。浏览器和网络服务器通常旨在说明机器和用户界面以及启用机器和用户界面的程序,并且可以由等效程序代替,用于为在计算装置(无论是在网络浏览器中还是例如在移动装置应用程序中)中的界面且在这些界面中服务和显示信息。
另外,爬行代理存储器450还存储操作系统455。可以使用与永久性计算机可读存储介质495(诸如软盘、磁带、DVD/CD-ROM驱动器、记忆卡或者其他相似的存储介质)相关联的驱动机构(未示出)将这些软件元素从非临时性计算机可读存储介质495加载入计算装置的爬行代理存储器450内。在一些实施方式中,可以另外地或替代性地经由除了驱动机构和计算机可读存储介质495以外的机构(例如,经由网络界面430)加载软件元素。
计算装置400例如还可以包括硬件支持输入模块,输入445,诸如触摸屏、照相机、键盘、鼠标、轨迹球、唱针、运动检测器以及麦克风。输入445还可以用作显示器440,如在触摸屏显示器的情况中一样,该触摸屏显示器还用作输入445并且可以通过具有输入445的表面的指针或唱针对具有接触形式的输入做出响应。
计算装置400还可以包括爬行代理数据存储器500或者经由总线420与爬行代理数据存储器500进行通信,在图5中进一步进行说明。在各种实施方式中,总线420可以包括存储区域网(“SAN”)、高速串行总线和/或通过其他合适的通信技术。在一些实施方式中,爬行代理400可以通过网络接口430与爬行代理数据存储器500进行通信。在一些实施方式中,爬行代理400可以包括比在该示图中示出的元件更多的元件。然而,不需要示出所有这些常用的传统元件,以公开说明示例性实施方式。
图5为在图4的计算装置中示出的爬行代理数据存储器500的功能方框图。爬行代理数据存储器500的元件是由程序所使用的数据组,并且将在论述其他示图时在本文中进一步进行论述。由在图5中所示的程序所使用的数据组可以由在列中的单元、或在数字文档或文件内定义的结构中与其他值分开的值表示。虽然在本文中被称为个别记录或条目,但是这些记录可以包括一个以上数据库条目。数据库条目可以是、表示或者编码数字、数字运算符、二进制值、逻辑值、文本、字符串运算符、接合点、条件逻辑、测试以及相似物。
图6为示出URI检验程序600的实施方式的流程图,其中,爬行代理400从URI队列355获取URI 305并且获取URI内容实例310。在方框605中,URI检验程序600例如从因迪克斯服务器200以及例如URI队列管理器程序900和URI队列355获取URI 305。可以以包括一个以上的URI 305的单位来获取URI 305。在方框610中,URI检验程序600利用URI 305与例如网络服务器115接触,并且获取内容,该内容在本文中被称为URI内容实例310。在方框615中,URI检验程序600和/或网络服务器115将URI内容实例310传输给因迪克斯服务器300,其中,例如,可以在HDFS数据库130中存储该URI内容实例。在方框699中,URI检验程序600可以中止和/或可以继续在URI队列355中的URI 305上迭代。
图7为示出用于解析URI内容实例310并且保存解析结果325的解析器程序700的实施方式的流程图。例如,可以由因迪克斯服务器200执行解析器程序700。方框705到方框770可以在因迪克斯数据存储器300内的各个URI内容实例310上迭代。在方框710中,可以对是否具有与关联于URI内容实例310的URI 305相关联的解析映射315做出判定;可以通过另一个记录,例如,通过与URI 305相关联的iPID 330(或MPID 332或其他解析映射确定器320)进行关联,该iPID 330可以与解析映射315相关联。如果具有解析映射315,那么在方框715可以获取相关联的解析映射315。如果没有的话,那么在方框720可以对是URI 305还是URI内容实例310与解析映射确定器320相关联做出判定。如上所述,可以通过另一个记录,例如,通过与URI 305相关联的iPID 330(或MPID 332)进行这个关联,该iPID 330(或MPID 332)可以与解析映射确定器320相关联。
例如,解析映射确定器320可以是与URI 305相关联的类别335、和/或可以是特征网页和/或网站结构或模板,其中,价格和产品属性与在项目中的特定HTML和CSS元素相关联。例如,解析映射确定器320可以包括网页电子商务平台(例如,如可以由电子商务平台160提供)、存储器、商户、域名以及HTML中的开放图谱(OpenGraph)元素。可以根据在因迪克斯数据存储器300内的记录进行和/或可以在URI内容实例310中识别URI 305或URI内容实例310与解析映射确定器320的关联。如果URI 305或URI内容实例310与解析映射确定器320相关联,那么在方框725中可以获取与其相关联的解析映射315。如果URI 305或URI内容实例310与解析映射确定器320不相关联,那么在方框730中,可以获取通用解析映射315。通用解析映射315可以是与特定的URI 305不相关联的解析映射315。在方框735中,可以根据解析映射315来解析URI内容实例310,以产生解析结果325。在方框740中,例如,可以在HBase数据库135中存储解析结果325。
方框750到方框760可以在解析结果325内的各个或几组属性340/345上进行迭代。在方框750中,解析器程序700可以对在属性340/345所预期的数据类型与在解析结果325内的属性340/345中存储或者试图存储的数据的数据类型之间是否具有一个或多个数据类型失配做出判定。例如,价格属性340可以是预期作为货币量的“售价”,而积累的内容(或试图存储在记录内)可以是另一个非货币数据类型的日期、图像、文本或值。虽然可以在等效记录中记下或存储用于存储不匹配的数据(以及所产生的错误消息)的尝试,但是不匹配的数据可以或者不可以存储在属性340/345内。相对于URI内容实例310,可以通过不同数据类型失配的不同权重来记录并且获取数据类型失配的数量和类型。
如果在方框750中确定了数据类型失配(或者计算高于阈值的数据类型失配得分),那么在方框755中可以从URI队列355中移除与URI内容实例310相关联的URI 305,并且可选地在方框1100中相对于用于解析URI内容实例310的解析映射315,可以执行解析映射验证程序1000。如果在方框750中未确定数据类型失配(或者计算低于阈值的数据类型失配得分),那么在方框760中解析器程序700可以在下一个属性340/345或其组上进行迭代。
在方框765中,与URI内容实例310相对应的存储器可以可选地标记为删除、再循环、重新使用或者丢弃。在方框770中,解析器程序700可以在下一个URI内容实例310上进行迭代。在方框779中,解析器程序700可以结束。
图8为示出用于识别包含价格或产品属性的URI 305并且将URI添加至URI队列355中的播种机程序800的实施方式的流程图。例如可以由因迪克斯服务器200执行播种机程序800。
可以在已经位于因迪克斯系统内的基础(base)URI上定期执行播种机程序800,以确保探测特定域名的所有URI。
在方框805中,例如,可以从URI 305记录或者从URI的外部来源获取基础URI。通过检验(如果可以的话)网页类型350记录(在先前制定了该记录),对于各个基础URI,可以在方框810中对URI 305与“站点地图(sitemap)”或“野生(wild)”爬行相关联做出判定。对于“野生”爬行URI,在方框815中,可以设定野生补种时间间隔(Re-Seed Interval),而在方框820中,可以设定站点地图补种时间间隔。野生补种时间间隔可以被设定为比站点地图补种时间间隔更短。在方框825中,播种机程序800可以在基础URI中恢复在下一个基础URI上的迭代,或者例如,播种机程序800可以继续前进至方框830。
在方框830中,可以第一时间或者以其补种时间间隔获取基础URI。在方框835中,播种机程序800接收输入信息,例如,诸如基础URI、样品非产品网页、样品产品页面、样品列表页面以及样品类别主页(根据类别列出产品的页面)。
在方框840中,例如,播种机程序800证实例如通过在基础URI上请求内容将允许爬行代理400爬行网站。在方框845中,播种机程序800在内容中识别出站点名称、站点URI、爬行延迟、“robots.txt”文件的内容、用于列表页面、产品页面和非产品页面的URI结构、来自基础URI的列表页面和产品页面的深度、删除(deduplication)规则(例如,不变的查询或路径参数)以及网站的爬行策略是否将是根据站点地图的,或者该爬行策略是否是“野生爬行”,其中,识别并且遵循在所有网页上的所有或基本上所有的URI。
方框850到方框860可以在方框845中识别出的所有URI上迭代。在方框855中,可以在URI队列355中设定URI 305的下一次检验360的时间。在方框860中,播种机程序800可以在方框845中识别出的剩余的URI 305上迭代。在方框865中,播种机程序800可以在当前的基础URI上结束迭代。在方框899中,播种机程序800可以结束和/或返回至方框830。
图9A和图9B为示出URI队列管理器程序900的实施方式的流程图。方框905到方框997可以在存储在因迪克斯数据存储器300内的各个解析结果325上迭代。在方框910中,可以对解析结果325是否包括属性340/345做出判定。如果不包括,那么在方框925中,可以从URI队列355中移除与解析结果325相关联的URI 305,并且然后可选地,该处理继续进入方框1000,并且执行解析映射验证程序1000。
如果在方框910中的判定是解析结果325包括属性340/345,那么该判定可以进一步包括确定URI 305与iPID 330相关联,然后,方框915到方框930可以为解析结果325中的各个或几组属性340/345迭代。在方框920中,URI队列管理器程序900可以对在属性340/345所预期的数据类型与在解析结果325内的属性340/345中存储的或者试图存储的数据的数据类型之间是否具有一个或多个数据类型失配做出判定。
如果在方框920中确定数据类型失配(或者计算高于阈值的数据类型失配得分),那么在方框925中,可以从URI队列355中移除与URI内容实例310相关联的URI 305,并且可选地在方框1000中,相对于用于解析URI内容实例310的解析映射315,可以执行解析映射验证程序1000。如果在方框920中未确定数据类型失配(或者计算低于阈值的数据类型失配得分),那么在方框930中,URI队列管理器程序900可以在下一个属性340/345或其组上迭代和/或可以继续前进至方框935。
在方框935中,可以对解析结果325是否与针对不同的URI 305(或不同的iPID 330)(但是针对相同的存储器)的解析结果325相同做出判定。由于解析映射315和解析器程序700的操作,所以虽然具有相同的属性340/345,但是位于两个相同的解析结果325下面的网页可以具有不同的内容,因此,产生相同的解析结果325。如果在方框935中确定相同的解析结果325,那么在方框940中,可以从URI队列355中移除URI 305和/或可以将URI 305标记为复制的解析结果325,这有效地表示两个iPID330被视为是相同的;用于URI 305的iPID 330例如还可以在标记为相同的iPID 334记录中被标记为是相同的。
在可以紧随方框935的方框945中,如果没有确定相同的解析结果325,那么可以对解析结果325是否被用于列表页面或产品页面或其他页面类型350做出判定。可以根据是否可以在解析结果325中识别一个以上产品做出这个判定,在这种情况下,可以被分类为列表页面。由于在处理列表页面时更有效,所以可以更频繁地爬行列表页面。如果在方框945中确定了解析结果325用于产品页面,那么在方框955中,可以存储与解析结果325相关联的URI 305的网页类型350,并且可以增大URI 305的下一次检验360的时间。如果在方框945中,确定了解析结果325用于列表页面,则在方框950中,可以存储与解析结果325相关联的URI 305的网页类型350,并且可以减小URI 305的下一次检验360的时间。
在方框960中可以对在与解析结果325相关的通信会话中是否具有HTTP误差、或者在解析结果325内的属性340/345(例如,“可用性”属性)是否包括文本或者另外表示“中断”做出判定。如果是这样的话,那么在方框965中可以增大下一次检验360的时间。
如果在方框960中并非如此,那么在方框970中可以对是否具有用于URI 305的前一个解析结果325做出判定。如果在方框999中并非如此,那么URI队列管理器程序可以结束或者可以返回在下一个解析结果325上迭代。
返回至图9B,在方框975中,可以对方框970的解析结果325相同还是不同做出判定,并保存该结果。在方框980中,可以计算970的解析结果325的变化时间间隔(Change Interval),作为最近的解析结果325的时间减去方框970的最早的解析结果325的时间,将其除以在解析结果325之间改变的次数。在方框985中,下一次检验360的时间可以被设定为下一次检验360的先前时间乘以在步骤980中计算出的变化时间间隔的一半。
在方框990中,可以对在用于与关联于URI 305的MPID 332相关联的产品的相同解析结果325中的价格是否变化(如果有的话)做出判定,这将识别出在其他商店或商户处具有的相同产品的价格变化。如果具有变化,那么在方框991中可以减小下一次检验360的时间。
在方框992中,可以对在用于与iPID 330或MPID 332相关联的类别335的解析结果325中的价格是否变化做出判定。如果具有变化,那么在方框993中可以减小下一次检验360的时间。
在方框994中,可以对在由客户端装置105提交的搜索查询中是否对产品、iPID 330、MPID 332或类别335感兴趣做出判定。如果感兴趣,那么在方框995中可以减小下一次检验360的时间。
在方框996中,例如可以基于诸如友好度等因素,例如,根据与解析结果325相关联的或者在解析结果325中发现的“robots.txt”或其部分和/或与解析结果325相关联的网站的站点通信量(可以由第三方报告该站点通信量),来更新下一次检验360的时间。
在方框997中,URI队列管理器程序900可以在下一个解析结果325上迭代。在方框999中,URI队列管理器程序900会终止。
图10为示出解析映射验证程序1000的实施方式的流程图。方框1005到1060可以在URI内容实例310上迭代。在方框1010中,解析映射验证程序1000可以获取用于HTML和CSS元素的标签列表以及属性340/345列表。在方框1015中,解析映射验证程序1000可以在URI内容实例310内的HTML和CSS元素中识别由与URI内容实例310的URI 305相关联的解析映射315所识别出的属性340/345。在方框1020中,解析映射验证程序1000可以输出方框1015的结果的图形表示。在图11中示出了其实例。
在方框1025中,例如,可以从客户端装置105接收用户反馈。例如,用户选择在方框1020的图形输出中识别出的属性340/345,并且改变属性340/345,例如,可以通过从下拉框等选择不同的属性340/345来提供用户反馈,然后,这个选择的属性340/345可以与相应的HTML或CSS元素相关联。例如,参见元素1170。
在方框1030中可以对用户反馈确认还是改变解析映射315做出判定。如果用户反馈确认解析映射315,那么在方框1035中,可以通过集群算法增大解析映射315关联性。如果用户反馈改变解析映射315,那么在方框1035中,可以通过集群算法减小解析映射315关联性。集群算法可以通过相对于相应的属性340/345的HTML和CSS元素来将用户反馈分组,将所有用户的最大分组分配给解析映射315。可替换地,可以为用户或者用户类型(例如,管理人)提供比其他用户更多的权重,以便无论其他用户分配的关联性如何都将这种用户关联性分配给解析映射315。
在方框1045中,可以保存修改的解析映射315,并且在方框1045中,可以与URI 305相关联。在方框1055中,可以更新URI队列355,例如,将URI 305添加回到例如由于数据类型失配从而可能已经移除的URI队列355中。
方框1060表示返回至下一个URI内容实例310上迭代。方框1099表示解析映射验证程序1000结束。
图11为示出具有与使用属性名称标记的属性相对应的HTML和CSS元素的网页的浏览器窗口的示图。元素1100例如是在客户端装置105内的浏览器窗口。在这个实例中,浏览器窗口1100涉及单个产品,即,手镯。浏览器窗口包括标签栏1105、地址栏1110、上部段落(TopParagraph)1115以及产品框(Product box)1175。产品框1175包含与手镯有关的信息。
在产品框1175内,使用粗实线框识别某些元件,而使用粗虚线框识别其他元件。粗线框(虚线或实线)不存在于网页的本地源代码内,而是由解析映射验证程序1000添加,在图10中进行论述。
元素1120是绘制在图像帧周围的粗线框,从在用于网页的源代码的HTML和/或CSS元素中识别出该图像帧。手镯图像1125处于图像帧1120内(在图11中,虽然手镯图像1125可以占据粗线框1120的更多空间,但是手镯由数字1125标记)。在粗虚线框1150内,属性的文本“图像URL”附加到图像帧1120的右下角,表示解析映射验证程序1000识别出了包含“图像URL”属性的网页的HTML和/或CSS代码的这部分,并且将文本“图像URL”添加至网页,以确定这个属性与网页的这个要素相关联。
对于在网页的源代码内的HTML和/或CSS元素,元素1130是在一个段落(或其他文本容器)周围绘制的粗线框,该段落是在图像帧1120之后的下一个段落。文本“71/4"手镯含银”在段落1130内,该文本源自网页的源代码。网页的HTML源代码例如可以叙述“<title>71/4"手镯含银︱蓝色尼罗河</title>”。在虚线线框1135内,属性的文本“标题(Title)”被附加到段落1130中,表示解析映射验证程序1000识别出了包含“title”属性的网页的HTML和/或CSS代码的这部分,并且将文本“标题”添加至网页,以确定这个属性与网页的这个要素相关联。
元素1140是绘制在一个段落(或其他文本容器)周围的粗线框,该段落包含措辞“现货”,该文本源自网页的源代码。在粗虚线框1145内,属性的文本“可用性文本”被附加到段落1140,这表示解析映射验证程序1000识别出了包含“可用性文本”属性的网页的HTML和/或CSS代码的这部分,并且将文本“可用性文本”添加至网页,以确定这个属性与网页的这个要素相关联。这个文本可以被标识为这个属性,这是因为措辞“现货(in stock)”可以与解析映射验证程序1000内的这个属性相关联。
元素1155是绘制在一个段落(或其他文本容器)周围的粗线框,该段落包含数字“1393693”,该数字源自网页的源代码。在粗虚线框1160内,属性的文本“SKU”被附加到段落1155,这表示解析映射验证程序1000识别出了包含“SKU”属性的网页的HTML和/或CSS代码的这部分,并且将文本“SKU”添加至网页,以确定这个属性与网页的这个要素相关联。这个文本可以被标识为这个属性,这是因为后接数字的措辞“项目#”可以与解析映射验证程序1000内的这个属性相关联。
元素1165是绘制在一个段落(或其他文本容器)周围的粗线框,该段落包含货币值“$89.99”,该货币值源自网页的源代码。包含几个属性(在这个实例中的“价格”、“售价”以及“折扣”)的文本的粗虚线框1170被附加到段落1165。在作为实例提供的这个实施方式中,这表示解析映射验证程序1000识别出了包含“价格”属性的网页的HTML和/或CSS代码的这部分。HTML例如可以描述为“<div class="strong">价格:</div><divclass="value">$89.99</div>”。在这个实施方式中,用户选择了框1170并且激活了可替换的一系列属性(这些属性可以由解析映射验证程序1000选择,这是因为这些属性与在框1165中并且发送给客户端装置的数据的数据类型匹配)。在这个实施方式中,用户可以从这个类别中选择一个可替换的属性,例如可以将这个选择发送回解析映射验证程序1000,如上文参照图10的论述。
图12为示出MPID分配器程序1200的实施方式的流程图。方框1205到方框1260针对连续的解析结果325迭代。在方框1210中,对于MPID分配器程序1200的第一步,相对于解析结果325执行一组机器学习算法1至N,以基于例如URI 305在类别335分类系统(taxonomy)内将解析结果325分类。不同的算法可以具有不同的标准,并且可以产生或不产生相同的结果。例如,一种算法可以将解析结果325置于类别335内,例如,“工具&硬件>工具>手动工具>钳子”,而另一种算法可以将解析结果325置于类别335内,例如,“工具&硬件>工具>手工具>螺丝刀”。对于第一步,可将将分类算法1至N的结果发送给测试和验证处理,该测试和验证处理可以包括筛选数据类型失配和/或人工检测结果。测试和验证处理可以通过各个算法返回结果的排序。在框1215中,在下一(并非第一)步中,可以执行在步骤1210中所选择的分类算法。如果所选择的算法失败,那么可以选择按照等级的下一个分类算法并且相对于解析结果325执行该算法。该输出是分配给解析结果325的类别335。
在框1220中,对于MPID分配器程序1200的第一步,MPID分配器程序1200可以在解析结果325上执行属性340/345提取算法1至M。可以根据在步骤1215中分配的类别335来选择提取算法1至M。与上面一样,可以将属性提取算法1至M的结果发送给测试和验证处理,该测试和验证处理可以包括筛选数据类型失配和/或人工检测结果。测试和验证处理可以通过每个算法返回结果的排序。在框1225中,在下一(并非第一)步中,可以执行在步骤1220中所选择的属性提取算法。如果所选择的算法失败,那么可以选择按照等级的下一个分类算法并且相对于解析结果325执行该算法。
在框1230中,例如,可以对所提取的属性340/345加权,以比其他属性340/345更重地为某些属性340/345(例如,产品代码或网页标题)加权。例如,可以为每个属性340/345分配4个加权因子。
在框1235中,MPID分配器程序1200可以在框1215中分配的类别335中获取所有iPID 330的属性340/345。如果还未加权(与在步骤1230中一样),那么MPID分配器程序1200例如可以根据这4个加权因子对属性340/345进行加权。
在框1240中,MPID分配器程序1200可以基于框1230和框1235的加权属性340/345,在类别335中对IPID 330进行分组。由于比其他属性更重地为特定属性340/345进行加权,所以在用于两个不同的iPID 330的产品代码(例如,UPC编号)之间的匹配可能产生属性340/345集群,该属性340/345集群使这两个不同的iPID 330彼此接近。例如,如果各个集群仅仅包含两个或一个iPID 330,那么可以通过逐渐缩小的集群继续进行分组,直到集群尺寸变得过小,此时,MPID分配器程序1200可以停止分组,并且可以“后退”一个或两个集群步骤,直到集群尺寸不再过小。
在框1245中,MPID分配器程序1200可以在具有最大数量的属性340/345的各个集群内的类别335中识别iPID 330,与在那个特定等级的类别335分类中并且在那个集群中的其他iPID 330具有相同之处。在框1250中,MPID分配器程序1200可以分配在框1245中识别的iPID 330,作为在那个特定等级的类别335分类中并且在那个集群中的所有iPID 330的MPID 332。在框1255中,所提取的属性(未加权)可以作为价格属性340和产品属性345进行保存,在框1250中分配MPID 332并且在步骤1215中分配类别335。在框1260中,MPID分配器程序1200可以返回至下一个解析结果325上迭代,并且在框1299中,MPID分配器程序1200会结束。
实施方式的以上详细描述并非旨在进行详尽描述或者将本公开限于所公开的精确形式。本领域的技术人员会认识到,虽然为了说明的目的,在上面描述了实例的具体实施方式以及实例,但是在本系统的范围内,能够具有各种等效修改。例如,虽然按照规定的顺序显示了处理或方框,但是替换的实施方式可以执行具有操作的程序,或者按照不同的顺序使用具有方框的系统,并且可以删除、移动、增加、细分、组合和/或修改一些处理或方框。虽然处理或方框有时显示为连续地执行,但是可以反而并行地执行或者可以在不同的时间执行这些处理或方框。而且,在本文中标注的任何特定的数字仅仅是实例;可替换的实施方式可以使用不同的值或范围。

Claims (22)

1.一种从网页服务器获取信息的计算机实施方法,所述方法包括:
从按优先顺序排序的URI队列获取第一URI;
利用所述第一URI在第一URI访问时间请求来自所述网页服务器的第一内容;
第一时间针对第一价格和产品信息解析所述第一内容,并且将结果保存为第一解析结果;
利用所述第一URI在第二URI访问时间请求来自所述网页服务器的第二内容;
针对第二价格和产品信息解析所述第二内容,并且将结果保存为第二解析结果;以及
确定所述第一解析结果与所述第二解析结果的差异,并且基于所述差异设定用于访问所述按优先顺序排序的URI队列中的所述第一URI的时间。
2.根据权利要求1所述的方法,其中,确定所述第一解析结果与所述第二解析结果的所述差异进一步包括确定变化时间间隔。
3.根据权利要求2所述的方法,其中,通过从先前的解析结果的时间日期减去稍后的解析结果的时间日期并且除以改变的次数,来计算出所述变化时间间隔。
4.根据权利要求3所述的方法,其中,基于所述差异设定用于访问所述按优先顺序排序的URI队列中的所述第一URI的时间包括增加所述变化时间间隔与最近的URI访问时间的乘积的一半,并且将这个结果设定为用于访问所述第一URI的时间。
5.根据权利要求1所述的方法,其中,第一时间针对所述第一价格和产品信息解析所述第一内容进一步包括选择第一解析映射,所述第一解析映射将所述第一内容映射为所述第一价格和产品信息。
6.根据权利要求5所述的方法,其中,选择所述第一解析映射包括确定所述第一URI与解析映射相关联并且选择所关联的解析映射作为所述第一解析映射。
7.根据权利要求5所述的方法,其中,选择所述第一解析映射包括:确定所述第一URI不与解析映射相关联;确定所述第一URI与解析映射确定器相关联;以及选择与所述解析映射确定器相关联的解析映射作为所述第一解析映射,其中,所述解析映射确定器是包括与URI相关联的类别、网页电子商务平台、存储器、域名以及HTML中的开放图谱元素的组中的一个。
8.根据权利要求5所述的方法,其中,选择所述第一解析映射包括:确定所述第一URI不与解析映射相关联;确定所述第一URI不与解析映射确定器相关联;以及选择通用解析映射作为所述第一解析映射。
9.根据权利要求5所述的方法,进一步包括:包括HTML和CSS元素的第一列表;包括价格和产品属性的第二列表,并且其中,所述解析映射包括所述第一列表的至少第一元素与所述第二列表的至少第一属性之间的关联。
10.根据权利要求1所述的方法,其中,
第一计算机从所述按优先顺序排序的URI队列获取所述第一URI,利用所述第一URI在所述第一URI访问时间请求来自所述网页服务器的所述第一内容,利用所述第一URI在所述第二URI访问时间请求来自所述网页服务器的所述第二内容;
第二计算机在所述第一时间针对所述第一价格和产品信息解析所述第一内容,并且将结果保存为所述第一解析结果,针对所述第二价格和产品信息解析所述第二内容,并且将结果保存为所述第二解析结果;以及
第三计算机确定所述第一解析结果与所述第二解析结果的差异,并且基于所述差异设定用于访问所述按优先顺序排序的URI队列中的所述第一URI的时间。
11.一种计算机实施方法,对包含关于产品的信息的第一网页进行分类并且利用包含关于所述产品的信息的先前网页对所述第一网页进行分组,所述方法包括:
获取第一解析结果,所述第一解析结果包括从所述第一网页解析出的第一组价格和产品信息以及与所述第一网页相关联的第一标识符;
利用至少第一算法,以从类别分类系统确定用于所述第一网页的类别;
利用至少第二算法,以从所述第一解析结果提取第一组价格和产品属性;
获取先前的价格和产品属性组以及用于与所确定的类别相关联的其他网页的先前的标识符;
将在所述第一组价格和产品属性中以及在比其他属性更重的所述先前的价格和产品属性组中的至少一个产品属性进行加权;
对加权后的价格和产品属性进行分组以识别具有相似的价格和产品属性的网页;
在各个集群内识别将最大数量的所述加权后的价格和产品属性与其他价格和产品属性组共享的价格和产品属性组;以及
分配与将最大数量的所述加权后的价格和产品属性与其他价格和产品属性组共享的所述价格和产品属性组相关联的标识符作为所述集群中的所有产品的共用标识符。
12.一种从网页服务器获取信息的计算机实施方法,所述方法包括:
从按优先顺序排序的URI队列获取第一URI;
利用所述第一URI在第一URI访问时间请求来自所述网页服务器的第一内容;
第一时间针对第一价格和产品信息解析所述第一内容,并且将结果保存为第一解析结果;以及
确定所述第一解析结果不包含价格和产品信息并且从所述按优先顺序排序的URI队列移除所述第一URI。
13.一种从网页服务器获取信息的计算机实施方法,所述方法包括:
从按优先顺序排序的URI队列获取第一URI;
利用所述第一URI在第一URI访问时间请求来自所述网页服务器的第一内容;
第一时间针对第一价格和产品信息解析所述第一内容,并且将结果保存为第一解析结果;以及
确定所述第一解析结果包含列表网页还是产品网页;并且
如果所述第一解析结果包含所述列表网页,则减少至所述按优先顺序排序的URI队列中的所述第一URI的下一个URI检验的时间;否则
增加至所述按优先顺序排序的URI队列中的所述第一URI的下一个URI检验的时间。
14.一种从网页服务器获取信息的计算机实施方法,所述方法包括:
从按优先顺序排序的URI队列获取第一URI;
利用所述第一URI在第一URI访问时间请求来自所述网页服务器的第一内容;
根据第一解析映射在第一时间针对第一价格和产品信息解析所述第一内容,并且将结果保存为第一解析结果;
确定所述解析结果中的价格或产品属性的数据类型与所允许的数据类型不匹配;以及
验证所述解析映射。
15.一种计算机实施方法,确定用于解析价格和产品信息的解析映射,所述价格和产品信息来自经由第一URI所获取的第一内容,所述方法包括:
获取包括HTML和CSS元素的第一列表;
获取包括价格和产品属性的第二列表,所述属性均与标签相关联;
将所述第一列表的至少第一元素与所述第二列表的至少第一属性相关联,所述关联是第一解析映射;
经由第一URI获取第一内容,所述第一内容包括HTML和CSS元素;
利用与所述第一属性相关联的标签修改所述第一内容以图表式识别所述第一内容的由所述第一元素包围的部分;以及
将修改后的第一内容传输至第二计算机。
16.根据权利要求15所述的方法,进一步包括:接收至少一个指令以使所述第一元素与所述第二列表的第二属性相关联;使所述第一元素与所述第二属性相关联;移除所述第一元素与所述第一属性之间的关联;以及在第二解析映射中使所述第一元素与所述第二属性相关联。
17.根据权利要求16所述的方法,进一步包括:接收至少两个指令以在使所述第一元素与所述第二属性相关联之前,使所述第一元素与所述第二列表的第二属性相关联;移除所述第一元素与所述第一属性之间的关联;以及在第二解析映射中使所述第一元素与所述第二属性相关联。
18.根据权利要求16所述的方法,进一步包括:接收多个指令以使所述第一元素与所述第二列表的不同属性相关联;经由分组确定所述第二列表的不同属性之中的哪一个属性是经常被指示为与所述第一元素相关联;并且将最经常被指示为与所述第一元素相关联的所述第二列表的属性关联作为所述第二属性;移除所述第一元素与所述第一属性之间的关联;以及在第二解析映射中使所述第一元素与所述第二属性相关联。
19.根据权利要求15所述的方法,进一步包括:
确定所述第一URI与解析映射确定器相关联,所述解析映射确定器是包括网页电子商务平台、存储器、域名以及HTML中的开放图谱元素的组;并且其中,
所述第一解析映射是与所述解析映射确定器相关联的解析映射。
20.根据权利要求15所述的方法,其中,使用与所述第一属性相关联的标签修改所述第一内容以图表式识别所述第一内容的由所述第一元素包围的部分进一步包括:
使所述第二计算机设置有属性标签的可选择列表;
从所述第二计算机接收对所述可选择列表的属性标签的选择;以及
使所述第一元素与对应于作为第二属性的所选择的属性标签的属性相关联,移除所述第一元素与所述第一属性之间的关联,并且在第二解析映射中使所述第一元素与所述第二属性相关联。
21.一种将URI添加至URI队列的方法,所述方法由包括存储器的第一计算机实现,所述方法包括:
使用第一计算机接收基础URI和与所述基础URI相关联的样品非产品网页、样品产品页面、样品列表网页以及样品类别网页;
使用所述第一计算机验证允许所述第一计算机爬行经由所述基础URI访问的网站,并且从所述网站下载内容;
使用所述第一计算机在所述内容中识别站点名称;爬行延迟;与所述列表页面、产品页面以及非产品页面相关联的URI结构;用于所述网站的URI删除规则中的至少一个;
使用第一计算机确定爬行策略作为基于站点地图的爬行策略或基于野生爬行的爬行策略中的至少一个;并且从而用于识别出各个URI,
将识别出的URI添加至所述URI队列,并且设定至下一次检验所识别出的URI的时间。
22.一种用于从网页服务器获取信息的计算设备,所述设备包括处理器和存储指令的存储器,当由所述处理器执行所述指令时,所述设备被配置为:
从按优先顺序排序的URI队列获取第一URI;
利用第一URI在第一URI访问时间请求来自所述网页服务器的第一内容;
第一时间针对第一价格和产品信息解析所述第一内容,并且将结果保存为第一解析结果;
利用所述第一URI在第二URI访问时间请求来自所述网页服务器的第二内容;
针对第二价格和产品信息解析第二内容,并且将结果保存为第二解析结果;以及
确定所述第一解析结果与所述第二解析结果的差异,并且基于所述差异设定用于访问所述按优先顺序排序的URI队列中的所述第一URI的时间。
CN201380049781.7A 2012-07-25 2013-07-25 结构化和非结构化数据自适应分组的系统和方法 Active CN104685490B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261675492P 2012-07-25 2012-07-25
US61/675,492 2012-07-25
PCT/US2013/052106 WO2014018780A1 (en) 2012-07-25 2013-07-25 Adaptive gathering of structured and unstructured data system and method

Publications (2)

Publication Number Publication Date
CN104685490A true CN104685490A (zh) 2015-06-03
CN104685490B CN104685490B (zh) 2017-09-15

Family

ID=49995732

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201380049781.7A Active CN104685490B (zh) 2012-07-25 2013-07-25 结构化和非结构化数据自适应分组的系统和方法
CN201380049798.2A Active CN104662529B (zh) 2012-07-25 2013-07-25 用于高性能分析的数据精炼引擎的系统和方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201380049798.2A Active CN104662529B (zh) 2012-07-25 2013-07-25 用于高性能分析的数据精炼引擎的系统和方法

Country Status (6)

Country Link
US (3) US9047614B2 (zh)
CN (2) CN104685490B (zh)
GB (1) GB2518117A (zh)
IL (2) IL236890B (zh)
IN (2) IN2015DN00473A (zh)
WO (2) WO2014018781A1 (zh)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8898630B2 (en) 2011-04-06 2014-11-25 Media Direct, Inc. Systems and methods for a voice- and gesture-controlled mobile application development and deployment platform
US8261231B1 (en) 2011-04-06 2012-09-04 Media Direct, Inc. Systems and methods for a mobile application development and development platform
US9134964B2 (en) 2011-04-06 2015-09-15 Media Direct, Inc. Systems and methods for a specialized application development and deployment platform
US8978006B2 (en) 2011-04-06 2015-03-10 Media Direct, Inc. Systems and methods for a mobile business application development and deployment platform
US9224167B2 (en) 2012-06-13 2015-12-29 Aggregate Shopping Corp. System and method for aiding user in online searching and purchasing of multiple items
US9384504B2 (en) 2012-06-13 2016-07-05 Aggregate Shopping Corp. System and method for a user to perform online searching and purchasing of multiple items
US10169802B2 (en) 2012-07-25 2019-01-01 Indix Corporation Data refining engine for high performance analysis system and method
US20140244391A1 (en) * 2013-02-28 2014-08-28 talktUp LLC Online advertising method and system
US20140281886A1 (en) * 2013-03-14 2014-09-18 Media Direct, Inc. Systems and methods for creating or updating an application using website content
US20140279222A1 (en) * 2013-03-15 2014-09-18 Aggregate Shopping Corp. Checkout System and Method for Purchasing Multiple Items On-Line
US11922475B1 (en) 2013-07-25 2024-03-05 Avalara, Inc. Summarization and personalization of big data method and apparatus
WO2015138787A1 (en) * 2014-03-12 2015-09-17 Indix Corporation Product score method and system
US11017426B1 (en) 2013-12-20 2021-05-25 BloomReach Inc. Content performance analytics
WO2015138789A1 (en) * 2014-03-12 2015-09-17 Indix Corporation Summarization and personalization of big data method and apparatus
US9741018B2 (en) * 2014-10-28 2017-08-22 Ebay Inc. Systems and methods for extracting similar group elements
US10223453B2 (en) * 2015-02-18 2019-03-05 Ubunifu, LLC Dynamic search set creation in a search engine
US9448993B1 (en) 2015-09-07 2016-09-20 Voicebox Technologies Corporation System and method of recording utterances using unmanaged crowds for natural language processing
US9786277B2 (en) 2015-09-07 2017-10-10 Voicebox Technologies Corporation System and method for eliciting open-ended natural language responses to questions to train natural language processors
US9519766B1 (en) 2015-09-07 2016-12-13 Voicebox Technologies Corporation System and method of providing and validating enhanced CAPTCHAs
US9401142B1 (en) 2015-09-07 2016-07-26 Voicebox Technologies Corporation System and method for validating natural language content using crowdsourced validation jobs
US9734138B2 (en) 2015-09-07 2017-08-15 Voicebox Technologies Corporation System and method of annotating utterances based on tags assigned by unmanaged crowds
US20170076222A1 (en) * 2015-09-14 2017-03-16 International Business Machines Corporation System and method to cognitively process and answer questions regarding content in images
CN106844402B (zh) * 2015-12-04 2020-08-28 阿里巴巴集团控股有限公司 数据处理方法及装置
US10936637B2 (en) 2016-04-14 2021-03-02 Hewlett Packard Enterprise Development Lp Associating insights with data
US10552898B2 (en) 2016-11-16 2020-02-04 Microsoft Technology Licensing, Llc User trainable user interface page classification system
CN108446287A (zh) * 2017-02-16 2018-08-24 北京国双科技有限公司 网页爬取方法及装置
US11880414B2 (en) * 2017-08-07 2024-01-23 Criteo Technology Sas Generating structured classification data of a website
US11803664B2 (en) * 2018-10-09 2023-10-31 Ebay Inc. Distributed application architectures using blockchain and distributed file systems
CN111489180A (zh) * 2019-01-25 2020-08-04 北京京东尚科信息技术有限公司 参考信息生成方法、系统及装置
CN110618999A (zh) * 2019-08-01 2019-12-27 平安科技(深圳)有限公司 数据的查询方法及装置、计算机存储介质、电子设备
CN111046083A (zh) * 2019-12-13 2020-04-21 北京中电普华信息技术有限公司 一种数据分析方法、系统及大数据平台
CN112633810B (zh) * 2020-12-29 2022-11-29 上海拓扑丝路供应链科技有限公司 一种基于国际货运服务标准价格转换装置的价格转换方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185614B1 (en) * 1998-05-26 2001-02-06 International Business Machines Corp. Method and system for collecting user profile information over the world-wide web in the presence of dynamic content using document comparators
WO2009042381A2 (en) * 2007-09-21 2009-04-02 Microsoft Corporation Management of preferred items list
CN102361484A (zh) * 2011-07-05 2012-02-22 上海交通大学 被动网络性能测量系统及其页面识别方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7082426B2 (en) * 1993-06-18 2006-07-25 Cnet Networks, Inc. Content aggregation method and apparatus for an on-line product catalog
US6381597B1 (en) 1999-10-07 2002-04-30 U-Know Software Corporation Electronic shopping agent which is capable of operating with vendor sites which have disparate formats
US6785671B1 (en) * 1999-12-08 2004-08-31 Amazon.Com, Inc. System and method for locating web-based product offerings
WO2001050320A1 (en) * 1999-12-30 2001-07-12 Auctionwatch.Com, Inc. Minimal impact crawler
US20010047404A1 (en) 2000-05-24 2001-11-29 Takashi Suda Apparatus for managing web site addresses
AU2001279010A1 (en) * 2000-07-25 2002-02-13 Zilliant, Inc. System and method for product price tracking and analysis
WO2002035421A1 (en) * 2000-10-24 2002-05-02 Netscape Communications Corporation Method and apparatus for recognizing electronic commerce web pages and sites
US20040168124A1 (en) * 2001-06-07 2004-08-26 Michael Beisiegel System and method of mapping between software objects & structured language element-based documents
US7912753B2 (en) * 2001-06-27 2011-03-22 Hewlett-Packard Development Company, L.P. System and method for controlling the presentation of advertisements
US7711775B2 (en) * 2001-10-24 2010-05-04 Groove Networks, Inc. Method and apparatus for managing software component downloads and updates
US7685050B2 (en) * 2001-12-13 2010-03-23 Bgc Partners, Inc. Systems and methods for improving the liquidity and distribution network for luxury and other illiquid items
US7349876B1 (en) * 2003-01-10 2008-03-25 Google, Inc. Determining a minimum price
US7152778B2 (en) * 2003-06-23 2006-12-26 Bitstock Collecting and valuating used items for sale
US7287279B2 (en) * 2004-10-01 2007-10-23 Webroot Software, Inc. System and method for locating malware
US7617193B2 (en) * 2005-03-28 2009-11-10 Elan Bitan Interactive user-controlled relevance ranking retrieved information in an information search system
US7912755B2 (en) * 2005-09-23 2011-03-22 Pronto, Inc. Method and system for identifying product-related information on a web page
US7685133B2 (en) 2006-05-24 2010-03-23 The United States Of America As Represented By The Secretary Of The Navy System and method for automated discovery, binding, and integration of non-registered geospatial web services
US8214272B2 (en) * 2006-09-05 2012-07-03 Rafael A. Sosa Web site valuation
KR101074578B1 (ko) * 2008-10-01 2011-10-17 엔에이치엔(주) 검색 데이터베이스 관리 방법 및 장치
WO2010093858A1 (en) * 2009-02-13 2010-08-19 Graham Paul C Price comparison process and system
US20100235473A1 (en) * 2009-03-10 2010-09-16 Sandisk Il Ltd. System and method of embedding second content in first content
US20110078029A1 (en) * 2009-09-25 2011-03-31 National Electronics Warranty, Llc Systems and methods for hosting, updating, and sending a webpage
US20110087647A1 (en) 2009-10-13 2011-04-14 Alessio Signorini System and method for providing web search results to a particular computer user based on the popularity of the search results with other computer users
CN101944221A (zh) * 2010-09-07 2011-01-12 上海腾唐数码科技有限公司 网络比价购物系统及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185614B1 (en) * 1998-05-26 2001-02-06 International Business Machines Corp. Method and system for collecting user profile information over the world-wide web in the presence of dynamic content using document comparators
WO2009042381A2 (en) * 2007-09-21 2009-04-02 Microsoft Corporation Management of preferred items list
CN102361484A (zh) * 2011-07-05 2012-02-22 上海交通大学 被动网络性能测量系统及其页面识别方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
张金寿主编: "《网络营销 2007年6月第1版》", 30 June 2007 *
李亮: "基于Lucene和Heritrix的职位垂直搜索引擎的设计和实现", 《中国优秀硕士学位论文全文数据库信息科技辑(月刊)》 *
李国朋等: "URI与网络资源维护存取", 《科技情报开发与经济》 *

Also Published As

Publication number Publication date
IL255873B (en) 2019-02-28
GB201500830D0 (en) 2015-03-04
CN104662529B (zh) 2019-03-29
US20140032264A1 (en) 2014-01-30
GB2518117A (en) 2015-03-11
US20150339682A1 (en) 2015-11-26
WO2014018781A1 (en) 2014-01-30
US20140032263A1 (en) 2014-01-30
CN104662529A (zh) 2015-05-27
US9047614B2 (en) 2015-06-02
IN2015DN00473A (zh) 2015-06-26
US9466066B2 (en) 2016-10-11
IL236890B (en) 2018-08-30
WO2014018780A1 (en) 2014-01-30
IL255873A (en) 2018-01-31
IN2015DN00474A (zh) 2015-06-26
CN104685490B (zh) 2017-09-15

Similar Documents

Publication Publication Date Title
CN104685490A (zh) 结构化和非结构化数据自适应分组的系统和方法
CN106446228B (zh) 一种web页面数据的采集分析方法及装置
CN105765573B (zh) 网站通信量优化方面的改进
US7813965B1 (en) Method, system, and computer readable medium for ranking and displaying a pool of links identified and aggregated from multiple customer reviews pertaining to an item in an electronic catalog
US9785989B2 (en) Determining a characteristic group
US10296942B2 (en) Advertisement choosing device and advertisement choosing method
US10007655B2 (en) Table size dependent transaction target table display
US8224823B1 (en) Browsing history restoration
CN110245069B (zh) 页面版本的测试方法和装置、页面的展示方法和装置
KR20150130282A (ko) 실시간 비딩용 지능형 플랫폼
KR20140034180A (ko) 우선순위 차원데이터 컨버젼 경로의 보고
CN103150352A (zh) 用于生成相关搜索查询的系统
CN108304426B (zh) 标识的获取方法及装置
JP6976207B2 (ja) 情報処理装置、情報処理方法、およびプログラム
KR20090000814A (ko) 광고 리스트 생성 방법 및 시스템
EP3289487B1 (en) Computer-implemented methods of website analysis
US20190205963A1 (en) Data refining engine for high performance analysis system and method
CN108198035B (zh) 一种跟单方法及装置
CN106874368B (zh) 一种rtb竞价广告位价值分析方法及系统
US20170004527A1 (en) Systems, methods, and devices for scalable data processing
JP6056327B2 (ja) 電子商取引サーバ装置
JP6664580B2 (ja) 算出装置、算出方法および算出プログラム
US20210056561A1 (en) Method and system for identifying electronic devices of genuine customers of organizations
JP6007300B1 (ja) 算出装置、算出方法および算出プログラム
RU2775561C1 (ru) Способ и система идентификации электронных устройств настоящих клиентов организаций

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant