数据采集的概念

运行一个项目Running a Project


在您设计了一个数据提取项目之后,您需要运行它来提取数据。您可以以许多不同的方式运行数据提取项目:

  • 在Visual Web Ripper中打开项目,并点击Run project工具栏按钮。
  • 使用Visual Web Ripper 计划任务调度项目。
  • 使用RunProject运行项目。exe命令行工具。
  • 使用API来加载和运行一个项目。

从项目编辑器中运行一个项目

当您在设计一个数据采集项目时,您可以使用Run project工具栏按钮来从Visual Web Ripper中运行项目。


running project

这是一个简单的运行和调试项目的方法,因为它允许您在提取数据的同时查看web浏览器,它还允许您访问调试窗口,在那里您可以查看关于数据提取过程的详细信息。


capture data ui
运行项目选项 Run Project Options
Default data extractor 1.WebBrowser: web浏览器代理使用本地Internet Explorer控件从一个网站中提取数据。这个数据收集器在可视编辑器中显示一个页面,因此通常非常准确。它加载并执行javascript,并处理AJAX。
2.WebCrawler: web爬行器代理非常快,但是它不加载JavaScript,也不处理AJAX。如果一个网页包含了无效的HTML语法,那么它可能会以不同的方式浏览网页,与它在视觉编辑器中的显示方式不同。您可以在可视化编辑器中打开web爬虫模式,以查看web爬虫收集器如何查看一个网页。
3.InternetExplorer:Internet Explorer代理与web浏览器代理类似,但它使用Internet Explorer的真实实例从一个网站中提取数据。
View web browser 在提取数据时显示web浏览器,这样您就可以跟踪代理如何在网站上导航。提取的数据在web浏览器中被标记。
Debugging 打开调试窗口,让您可以访问调试窗口。
Debug level 指定在调试窗口中显示的详细信息。
Pause data extraction 当某个条件为真时,暂停处理。
Pause 您可以在任何时候单击暂停按钮来暂停处理。暂停之后,您必须单击Continue按钮继续进行处理。

采集内容


您可以配置一个数据采集项目,通过向模板中添加内容元素来从一个页面中提取内容。您可以通过使用其中的一种方法向模板添加内容元素:

  • 右键单击web浏览器中的HTML元素,并从上下文菜单中选择Add Content。
  • 左键单击web浏览器中的HTML元素,并单击元素窗口中的New按钮。
  • 当您在web浏览器中单击HTML元素时,按下Shift键。

在您添加了类型元素的内容元素之后,您可以从选项窗口中选择捕获类型。Visual Web Ripper可以从选定的HTML元素中提取任何属性,如文本、HTML或元素属性。

capture options

微调内容选择Fine-Tuning a Content Selection
内容可能位于单一类型的网页上的多个位置。例如,您可能有几个页面的搜索结果,其中的内容选择从第一个页面中提取内容,而不是在下面的页面中。在这种情况下,您需要手动调整内容选择,以便对搜索结果中的所有页面都有效。

内容转换Content Transformation

内容转换脚本通常与内容元素一起使用,以修改提取的数据。内容转换脚本可以从提取的数据中提取较小的片段。例如,一个HTML元素可能包含一个完整的地址。内容元素将完整的地址提取到一个数据字段中,但是您可以使用内容转换从完整的地址提取状态或邮政编码。

导航网站 Navigating a Website


Visual Web Ripper 使用模板浏览网站。当Visual Web Ripper打开一个模板时,它会通过点击相关的链接或Web表单按钮来导航到一个新的网页。如果模板是一个列表模板,那么Visual Web Ripper就会遍历列表中的所有链接,从而导航到所有的链接。

您可以使用以下模板来配置一个数据提取项目来导航一个网站:

  • Link template: 这是最常用的模板。它点击一个链接,以便导航到一个新的网页。模板可以是一个列表模板,它可以选择一个链接列表。
  • FormSubmit template: 该模板用于提交web表单。
  • PageNavigation template: 例如,该模板用于导航搜索结果中的页面。模板单击页面导航中的所有链接,或者在下一页链接中单击。
  • Redirect template: 这个模板很少被使用,但是它会导航到一个直接的URL。
  • Root template: 当您创建一个新的数据提取项目,并且模板导航到开始URL时,这个模板就会自动创建。

您可以通过单击浏览器工具栏按钮中的导航来打开 Visual Web Ripper Web浏览器中的手动导航,但是这个特性只在以下两种情况下使用。

  • 当您想要导航并设置数据提取项目的开始URL时,请在浏览器工具栏按钮中使用导航。通常,这是在创建新数据提取项目时执行的第一个步骤。
  • 当您想要测试带有特定URL的模板时,请在浏览器工具栏按钮中使用导航。当您打开一个链接列表模板时,Visual Web Ripper 将导航到列表中的第一个URL。有时,您可能希望使用不同的URL打开模板。您可以通过打开模板并使用手动导航导航到另一个URL来实现这一点。

正如上面所提到的,当你打开一个链接模板,它与一个链接列表相关联时,Visual Web Ripper 会导航到列表中的第一个链接。如果您想要Visual Web Ripper 导航到列表中的另一个链接,您可以在打开模板之前点击Web浏览器中的特定链接。Visual Web Ripper 导航到列表中选择的链接。确保在web浏览器中选择一个链接元素,而不是一个不同的元素类型。

开始URLs Start URLs

一个数据提取项目的开始URL指向一个项目在启动时将导航的网页。开始URL必须是一个直接的URL,不能包含任何会话信息。例如,你不能登录一个网站,导航到一个网页,然后使用这个网页的URL作为开始的URL。在这个场景中,您必须使用登录页面的URL作为开始URL,然后在您的项目中添加模板,以便导航到您想要开始提取数据的页面。

项目的根模板(root template)包含关于开始URL的信息。当打开根模板时,Visual Web Ripper 会导航到开始的URL。当您创建一个新的数据提取项目时,将自动创建根模板。当根模板打开时,您可以使用地址栏输入开始URL。

Start URLs

如果根模板是打开的,您也可以通过在Visual Web Ripper Web浏览器中打开手动导航来导航到开始URL。通过单击浏览器工具栏按钮中的导航打开手动导航。

navigation in browser

多个开始URLs Multiple Start URLs
一个数据提取项目可以有多个启动urls。您可以输入一个开始urls的静态列表,或者输入来自输入数据源的起始url,例如CSV文件或数据库。


Following Pagination Links 分布链接


一个显示搜索结果的网站经常使用分页来允许用户在搜索结果中前进。
下面的图片显示了Google搜索的分页。

google pagination

Visual Web Ripper 可以使用pagenavigation导航模板来跟踪所有的分页链接。pagenavigation导航航模板从不包含任何子内容或子模板,但只是简单地重复它的父模板,用于每个分页链接。

Pagination graphy

上面所示的项目配置继续处理每个分页链接的PageArea列表模板。

Visual Web Ripper支持四种类型的分页:

  • Next Page navigation 下一页导航
  • Single Link navigation 单链接导航
  • List of Links navigation 列表链接导航
  • Dynamic List of Links navigation 动态列表链接导航

下一页导航是最常见的,当网站有一个Next Page | 下一页链接,它会把你转到导航的下一个页面时,应该使用它。pagenavigation 导航模板应该选择网页上的下一页链接。下一页的pagenavigation模板自动地将过滤器应用到选择中,因此选择XPath通常最后看起来是这样的://A[.= 'Next >>']。您不需要知道XPath语法来使用这个特性,但是这样的XPath确保了一个很好的、健壮的选择,它可以很好地适应页面上的变化。

单链接导航(Single Link navigation)类似于下一页导航,但是它不应用选择过滤器。尽管很少使用,但是在选择过滤器自动应用到下一页选择不合适的场景中,单个链接pagenavigation导航模板可以很有用。

列表链接导航(List of Links navigation)在没有下一页链接的地方使用,但是只有一个页面链接的列表。页面链接的链接列表必须选择导航中的每个链接,因此应该是一个列表模板。

有时一个网站显示了前十个导航页面,然后又有一个链接到下一个十个导航页面。在这种情况下,您必须使用两个分页导航模板:第一个是链接pagenavigation 导航模板的列表,它选择了前10个导航页面,第二个是选择下一页(Next Page)链接的下一页或单个链接pageNavigation导航模板。

在没有下一页链接的情况下,链接导航的动态列表会被使用,但是只有一个页面链接列表和列表中的页码会随着你在导航中向前移动而动态变化。Google搜索提供了动态分页的一个很好的例子。请注意,Google搜索也有一个下一页链接。在这种情况下,您应该使用下一个页面导航,但是链接导航的动态列表也会起作用。

使用启动新Web浏览器选项 Start New Web Browser

启动新的web浏览器选项通常可以用于加快web浏览器模式中的数据提取,在处理某些网站的分页时有时也需要这个选项。例如,你可能有一个搜索结果列表,上面有详细的链接和标准的页面导航,但是每次你点击一个细节链接,然后返回到搜索结果,这个网站会自动移到第1页,而不是停留在当前页面上。这意味着Visual Web Ripper 将进入一个无限循环并继续处理第1页。为了避免这个问题,您需要确保Visual Web Ripper 不会离开搜索结果页面,而是在一个新的Web浏览器中加载细节页面。您可以通过在打开详细页面的链接模板上设置新的web浏览器选项来实现这一点。

web爬虫收集器总是使用一个新的web爬虫实例来从一个新的网页中提取数据,因此新的web浏览器选项在web爬虫模式中没有影响。有关更多信息,请参见主题数据收集器。


提交web表单 Submitting Web Forms


Visual Web Ripper可以多次提交web表单,以用于任何输入值的组合。您可以将输入值指定为一个静态的值列表,或者您可以从输入数据源中输入值,例如数据库或CSV文件。

FormSubmit模板用于提交任何web表单,如登录表单或搜索表单。FormSubmit模板通常有相关的FormField内容元素。这些内容元素选择表单输入元素,并指定表单输入值。

按照以下两个步骤配置一个数据提取项目来提交表单:

  1. 添加一个表单提交模板,选择表单提交按钮。
  2. 为您想要提供输入值的每个表单字段添加内容元素。
submit forms

FormField内容元素有相应的输出数据字段,其中包含输入值。如果您不想将输入值写入数据输出,那么可以重新设置Save Content选项。

FormSubmit模板通常选择类型提交的输入HTML元素。Visual Web Ripper 点击输入元素来提交表单。有时,网站使用JavaScript提交表单,在这种情况下,提交HTML元素可能是任何HTML元素。如果网站不使用输入HTML元素作为提交元素,Visual Web Ripper 可能会识别出被选中的HTML元素作为一个链接,你将不得不把模板类型从链接更改为FormSubmit。

FormSubmit模板为表单字段输入值的每个组合提交一个web表单。在设计一个项目时,您可以在Visual Web Ripper 捕获窗口中设置表单字段输入值。每个输入值应该由一条新行分隔。例如,如果您想为表单提交5个输入值,那么FormField内容元素的捕获窗口应该是这样的:


capture value

当您添加一个选择HTML下拉菜单的FormField元素时,Visual Web Ripper会自动为下拉菜单中的所有值提交表单。如果您选择FormField选项来迭代所有的列表值,您可以看到捕获窗口中列出的所有下拉菜单值。如果您想在下拉菜单中只提交几个值的表单,则需要重置选项迭代所有的列表值,然后从捕获窗口中删除多余的条目。

FormField Actions

有些网站有表单字段自动提交web表单。例如,搜索结果页面可能有一个下拉框,可以设置显示在搜索结果页面的数量,或一个下拉框,允许您控制结果集的排序顺序。一旦你选择下拉框中的值,web表单自动提交,你无须点击提交按钮。

按照以下步骤配置一个项目,在一个下拉框中设置一个值,然后自动提交web表单。

  1. 为下拉框添加一个FormField内容元素。
  2. 重置FormField选项,迭代所有的列表值,并在捕获窗口中输入所需的下拉值。
  3. 为FormField元素设置一个动作。这可以是一个完整的页面加载操作或JavaScript操作。
  4. 添加一个FormSubmit模板,并将表单类型设置为Auto submit。
Form Options

在表单提交上下载一个文件

有时表单提交会导致文件下载。在这种情况下,当单击表单提交按钮时将出现一个“Save As”对话框。这个对话框将阻止Visual Web Ripper 正确处理网站。

下面的高级模板选项用于配置一个项目来下载文件,而不是显示“Save As”对话框。

file download on form submit

当在表单提交时下载文件时,必须设置固定的文件扩展Fixed file extension选项。

提交选项的下载文件Download file on submit仅由web爬虫代理和版本2的WebBrowser代理提供支持。在使用版本2的WebBrowser代理时,您必须设置项目选项来修改web浏览器的行为Modify web browser behavior

上传文件 Uploading Files

一些web表单包含文件上传框,允许用户将文件上传到网站。文件上传框不能被脚本操作所操纵,因此它们需要以不同于其他web表单输入框的方式处理。

按照以下步骤为您的项目添加一个文件上传FormField。

  1. 在web浏览器中选择文件上传输入框,并向您的项目添加一个FormField内容元素。
  2. 输入您想要在捕获窗口中上传的文件的路径。您还可以从输入数据源加载文件路径。
  3. 将FormField动作设置为JavaScript和AJAX。
  4. 在advanced options选项卡中设置FormField选项“文件上载”到true。

上传文件的web表单不能提交到一个新的浏览器窗口,因此这样的web表单将始终在当前的浏览器窗口中打开。

案例 Web Form Examples

  • 提交一个输入值列表的Web表单
  • 级联Ajax下拉菜单
  • 提交带有单选按钮或复选框列表的Web表单


处理网站登录 Handling Website Logins


VWR(Visual Web Ripper)可以处理网站的登录表单,因为它可以处理任何其他的web表单。按照以下三个步骤配置一个数据提取项目,以登录一个网站:

  1. 添加一个选择Login按钮的FormSubmit模板。
  2. 添加一个FormField内容元素,选择用户名表单字段。在捕获窗口中输入用户名。
  3. 添加一个FormField内容元素来选择密码表单字段。在捕获窗口中输入密码。
Logins

基于windows的验证 Basic Windows Authentication
一些网站使用基本的Windows认证,它们将显示一个Windows登录框。Internet Explorer不再允许您直接在URL中嵌入身份验证:

http://username:password@www.domain.com/index.html

VWR允许您在项目选项的Advanced选项卡上设置基本Windows身份验证的用户名和密码。

base windows authentication

您必须设置项目选项来修改默认的web浏览器运行Modify default web browser behavior,以使Windows身份验证生效。






















©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容

  • 项目选项 项目选项是适用于整个项目的选项。最常用的项目选项与以下三个方面相关: 开始的urls 连接 代理 您可以...
    游侠儿evil阅读 808评论 0 0
  • 理解概念 在开始使用Visual Web Ripper之前,您需要理解底层的模板(Template)概念。大多数w...
    游侠儿evil阅读 639评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,497评论 18 139
  • Incremental Web Scraping and Avoiding Duplicate Data 当从诸如...
    游侠儿evil阅读 2,269评论 0 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,057评论 25 707