教程2抓取电子商务网站.docx

上传人:b****6 文档编号:5951593 上传时间:2023-01-02 格式:DOCX 页数:23 大小:836.85KB
下载 相关 举报
教程2抓取电子商务网站.docx_第1页
第1页 / 共23页
教程2抓取电子商务网站.docx_第2页
第2页 / 共23页
教程2抓取电子商务网站.docx_第3页
第3页 / 共23页
教程2抓取电子商务网站.docx_第4页
第4页 / 共23页
教程2抓取电子商务网站.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

教程2抓取电子商务网站.docx

《教程2抓取电子商务网站.docx》由会员分享,可在线阅读,更多相关《教程2抓取电子商务网站.docx(23页珍藏版)》请在冰豆网上搜索。

教程2抓取电子商务网站.docx

教程2抓取电子商务网站

2:

抓取电子商务网站里面的数据

1抓取过程回顾:

正如你会记得以前的教程,提取网页使用screen-scraper通常包括四个主要步骤:

1,采用代理服务器,以确定需要被要求为了得到准确的信息

2.创建scrapingsession的定义的页面序列屏幕刮板将请求。

3.生成提取模式(extractorpatterns)来定义你需要的确切信息从每一页。

4.写小脚本或程序代码来调用或处理的数据。

正如在第一个教程,我们将记录一个浏览器会话使用代理服务器。

请记住,代理会议认为的HTTP请求,并为这一段时间的运行所有响应。

此时启动通过单击开始按钮,代理服务器代理服务器,然后配置你的Web浏览器当你在第一个教程(如果需要使用我们你的浏览器的文档)。

在您的Web浏览器(在配置为使用代理服务器)去这个网址:

http:

//www.screen-

请记住,您可能要使用代理服务器和一个一个浏览器来查看教程。

记得这个要打勾Don'trecordbinaryfiles.

记录页

搜索结果页

我们会做一个在购物网站上对于“DVD”产品目录中搜索。

做打字DVD插入在主页的右上角位于搜索框,然后点击搜索按钮的。

你会看到屏幕上出现轻微的工作,刮刀,那么,一旦完成,你应该看到一个交易表的新行中的HTTP。

添加双击并输入备注字段的说明,搜索结果以适当的方式处理事务它。

详细资料页

稍后我们将刮详细信息页,让我们的纪录者之一了。

点击链接速度的DVD对这一观点的具体细节。

新增附注,详细信息页输入适当的交易通过双击在说明字段。

停止代理会话

这些就是我们有兴趣在这一点上,所以,尽管停止单击停止代理常规选项卡上的代理服务器按钮会议的网页。

您还需要重新配置您的浏览器,以便它不再使用的屏幕作为代理服务器刮刀。

CreatetheScrapingSession

创建一刮会议通过单击(添加新的刮会议)按钮或菜单选择新刮会议于该文件。

在名称字段中输入购物网站(如果你已经下载和进口本教程的第一届会议在刮你会想你的名字刮会议别的东西,也许“我的购物网站”)。

这是刮会议文件将保存所有的,我们将提取数据。

记住,一刮会议是一个简单的站点容器网络对所有人的文件和其他对象,这将使我们考虑提取数据从一个。

AddScrapeableFiles

我们现在将被加入到我们scrapeable文件刮会议。

你会记得第一个教程,一个scrapeable文件代表您请求的网页想屏幕刮刀。

添加会话中的对象树,然后在第一届会议刮一下scrapeable文件到代理购物站点进展标签。

查找表中的HTTP事务下一页说明,URL应该是这样:

http:

//www.screen-

这个URL对应于搜索结果的第二页。

我们将使用此文件,因为它应该包含),包括首次在所有参数的网址(我们需要请求任何搜索结果页表。

点击后在此行中,信息相对应的文件将出现在下部窗格中。

将文件添加到购物网站刮名单会议通过了选择它的落生成scrapeable文件,并单击Go按钮后scrapeable文件将出现在刮会议,如果不是这样命名,重命名它搜索结果。

Scrapeable文件参数

接下来,在参数标签。

当我们以这种方式生成的屏幕掏出刮刀从网址中的参数和参数选项卡下把我们这些scrapeable。

因为这些是GET参数(而不是POST参数),当scrapeable文件是由屏幕刮刮援引运行会议上,再次追加参数将得到的网址。

让我们在URL中嵌入了在仔细看看每个参数:

∙main_page:

advanced_search_result

∙keyword:

dvd

∙sort:

2a

∙page:

2

只有两个,我们很可能感兴趣的是关键字和网页。

我们可以猜测,关键字是指我们在搜索框中输入最初文本。

该网页参数指的是什么页面,我们在搜索结果是。

我们可以猜测,如果我们要替换页的URL参数,这将造就2在搜索结果的第一页。

尝试通过抚育在Web浏览器下面的页面:

http:

//www.screen-

看起来就像我们的理论是正确的。

您应该看到的搜索结果的第一页。

同样重要的是要注意,关键字和页面参数是那些需要是动态的。

什么是初始化脚本

这是一个常见的做法,运行在一个非常刮会话初始化变量等可以开始一个脚本。

这是一个网站,尤其是在遍历多个页面像我们的小电子商务网站非常有用。

CreatingtheScript

生成脚本通过单击(添加一个新的脚本)按钮或选择File菜单中的新建脚本从-。

在名称字段中键入ShoppingSite--initializesession.

你会记得第一个教程,丝网刮刀脚本得到某些事件发生时调用。

我们将调用这个脚本刮会议开始前,但首先让我们写剧本。

WritingtheScript

再次,本教程不是教Java的,所以我们将为您提供脚本。

请复制并粘贴到文本的脚本在脚本字段。

//Setthesessionvariables.

session.setVariable("SEARCH","dvd");

session.setVariable("PAGE","1");

 

确保解释执行的Java语言中选择。

在脚本中,我们设置刮会议对我们当前的两个会话变量。

我们从1开始,让第一个搜索结果页将得到要求先页面变量。

Scrapeable文件中的参数使用会话变量

此脚本之前,尝试让我们为我们的scrapeable修改文件中的参数,以便使他们的会话变量的使用。

点击搜索结果scrapeable文件,然后在参数选项卡。

更改参数值的关键字从DVD到~#SEARCH#~,并改变从2页参数的值~#PAGE#~页。

如果你还记得从第一个教程中,我们所使用的分隔符@和@〜〜选择一个提取模式的资料出来,我们还保存到会话变量选择的信息。

分隔符#和#〜〜做几乎完全相反,他们采取然后将带他们出去,而不是我们的文件会话变量和地点。

在~#SEARCH#~和~#PAGE#~令牌将在与相应的会话变量的值运行时更换。

因此,第一个URL将会如下:

http:

//www.screen-

也就是说,屏幕刮板将利用我们的Get所有参数,它们附加到URL的末尾,然后替换任何嵌入的会话变量(包围了〜##〜标记)与其相应的值。

另一种方法

AlternativeMethod

我们可以通过删除实现从参数选项卡中的所有参数,并与整个取代的GET网址在URL字段中的文本同样的效果:

 http:

//www.screen-

打破了在Parameters的参数只是使它们更易于管理,这就是为什么我们采取了采取这种做法。

关联脚本

我们会联想到我们现在需要用我们的脚本开始刮会议,以便它被调用之前,刮会议。

为了做到这一点,请在购物网站刮树会议的对象选项卡,然后在常规。

在脚本节,底部的窗格按一下按钮添加脚本实现添加一个脚本-。

在脚本名称栏中选择购物网站初始化会话。

然后,在运行栏中选择何时刮会议开始之前(如果尚未选中),并确保已启用复选框被选中。

这将导致我们的脚本来获得在非常会议开始刮,这样两个会话变量是怎样设置执行。

测试运行得不错,我们准备尝试这一切。

本次会议将刮,一旦完成后,产生一个比一个再登录,第一个教程中创建的,所以它可能是一个好主意,增加线屏幕刮板将展示在其日志编号。

要做到这一点,单击在对象树刮会议,然后在日志选项卡。

在文本框只显示标记线以下号码输入号码1000。

正如你可能猜测,如果你只是删除箱号,由当时它将使日志成长为多,因为它需要让所有的信息的刮掉。

很长的文件将减慢刮,因此如果它开始变得太长,最好是限制日志的大小。

运行刮刮会议按钮在会议通过选择对象树,然后点击运行。

这将导致日志标签被激活,让您看刮会议取得进展。

你会注意到,所要求的文件的URL是基于上述之一。

您还可以验证正确的网址是通过点击搜索结果scrapeable文件,然后在最后反应在显示选项卡,然后在浏览器按钮的响应,要求。

该页面应该类似于一看到你在你的网页浏览器。

记住,这是一个好主意,刮跑,你会经常进行更改,并观看记录和最后的反应,以确保工作的事情,你期望他们。

您还需要经常保存您的工作。

做,现在通过点击(保存)按钮。

链接提取模式~#PAGE#~

警告!

本教程的特定部分的是一个涵盖第一个重要原则,往往是人们似乎混乱。

如果你已经超速通过本教程到这一点,它很可能是一个好主意,放慢一点,更仔细地阅读。

提取范式述评现在,我们要创建一个模式对夫妇的提取,提取信息明天的产品详细信息的链接。

请记住,提取模式是一种)块文本(通常是HTML包含特殊令牌,将匹配在数据收集件你感兴趣。

在创建提取模式下,建议您始终使用从最后的响应屏幕刮板标签的HTML。

默认情况下,在屏幕刮板它请求一个页面的HTML整容它找到。

这使它从HTML稍有不同,你会得到通过查看您的Web浏览器源。

确定详细信息的网址

点击搜索结果对象的树scrapeable文件中的标签,然后在最后的回应。

textarea的包含HTML,因为我们只是刮跑了会议。

如果您没有看到任何HTML,然后重新运行刮会议,以便在scrapeable文件将有一个最后的回应

点击搜索结果中的对象树scrapeable文件,然后在最后响应选项卡。

textarea的包含HTML,因为我们只是刮跑了会议。

如果你没有看到任何HTML,然后重新运行刮会议,以便在scrapeable文件将有一个最后的答复。

我们要提取产品的每个部分详细信息的链接,以便我们可以随后要求每一个细节页,从中提取信息。

首先对应的详细信息链接到一个错误的生活DVD。

要查找文本,您可以点击查找按钮,然后键入的生活融入最查找问题就是文本,然后点击查找按钮。

让我们先在表格行的所有期待(标签)。

您可能不能够很容易地看到所有的文字,所以我们已经解压缩,并放置在这里为你检查:

 

//www.screen-src="images/dvd/a_bugs_life.gif"border="0"alt="ABug'sLife"title="ABug'sLife"width="100"height="80"/> 

 

//www.screen-Bug'sLife 

 $35.99 

//www.screen-src="includes/templates/template_default/buttons/english/button_buy_now.gif"border="0"alt="BuyNow"title="BuyNow"width="60"height="30"/> 

这可能看起来是有点乱,但如果我们仔细观察,我们可以挑选出的表格单元格中的详细信息链接:

 

//www.screen-Bug'sLife 

它分解一点我们得到的网址:

http:

//www.screen-

您可能会注意到,在网址中的典型和符号被替换&。

不要惊慌,这只是一部分,刮板整理过程画面,适用于HTML中。

如果我们检查URL中的参数,我们可以猜测,重要的一条是products_id,这可能标识产品的细节我们感兴趣,我们将首先假定products_id是唯一一个我们需要提取。

创建产品详细信息链接提取模式

在这一点上,在搜索结果中的对象树scrapeable文件,然后点击点击提取图案选项卡。

我们将创建一个提取模式,以抢出各个环节的产品ID和DVD标题。

它看起来像下图所示:

 

//www.screen-

创建格式文本框中点击提取模式提取模式的添加按钮,然后复制并粘贴到上面的文字。

给予提取模式的名称产品详细信息链接。

请记住,提取记号(划定了〜@@〜标记)数据表明我们在收集有关意见。

在这种情况下,我们要提取的产品(在URL中嵌入)ID和产品的称号。

PRODUCTIDTokenProperties

双击的ProductID令牌(或选择文本之间的〜@@〜分隔符,右键单击它并选择编辑标记),并在对话框中,单击保存在会话变量复选框。

根据正则表达式部分,选择URLGET参数。

你会注意到,当你这样做文字[^&"]*显示在上方的下拉列表的文本框。

这是正则表达式,我们将使用。

您也可以手动编辑,但一般不会是必要的。

QuickExplanation

让我们放慢了这一点,过去我们只是做对的ProductID提取标记。

第一教程中,我们检查了盒子保存在会话变量告诉丝网刮刀,以维持我们的价值,使我们可以用它在以后点。

这一次,我们也选择了一个正则表达式为它用。

这将筛选出来的结果不符合令牌的期望。

如果你不是很熟悉的表达规律,不要担心。

在绝大多数情况下你可以简单地使用下拉列表中的正则表达式中发现的。

通过指定的URLGET参数正则表达式,我们是说,我们希望任何符号标记匹配字符,除了双引号或(即“和&字符)。

您会发现在我们的提取模式,一个双引号字符只符合我们的ProductID提取标记。

通过使用正则表达式限制什么,我们将匹配的标记,以便我们能够确保我们得到不仅是我们想要的。

你可能认为它作为标记周围放置一个小栅栏。

我们希望它的任何字符匹配的ProductID萃取器下方的标记,直至(但不包括)的双引号字符。

你会的,大部分当时,要指定一个正则表达式提取记号。

这将有助于确保只检索所需的信息。

在大多数情况下你要指定一个正则表达式提取标记。

使用正则表达式提取模式也使得更多的弹性在网站的变化。

也就是说,如果网站作出轻微修改它的HTML(例如,更改字体样式或颜色),您一直在使用正则表达式的提取方式更可能仍然匹配。

此外,使用正则表达式,我们经常可以减少HTML的数量,我们需要使用我们的提取方式。

通过使用正则表达式,我们更准确地表明了数据的样子,我们的令牌匹配这样做。

,我们可以通常会降低我们的HTML的数量在我们的开始和结束,包括提取模式。

一般而言,如果你能减少你的HTML中提取的模式数量,增加你的正则表达式在标识中使用,您的提取模式的数量将被更能适应)的变动情况被制造在HTML页面。

令牌现在关闭编辑框(其中自动保存我们的设置。

PRODUCT_TITLETokenProperties

现在,让我们改变了PRODUCT_TITLE令牌的设置。

我们不感兴趣的保存会话变量的值了这个道理的,但是我们有它,因为它会为每个不同的HTML部分要匹配。

双击PRODUCT_TITLE提取令牌令牌弹出编辑对话框而且,根据正则表达式的部分,选择非HTML标记。

如果你看看对我们PRODUCT_TITLE提取左,右两侧标记的字符,你会看到它们都小于“(<)和大于”(>)符号。

通过使用这个正则表达式提取标记告诉我们不包括任何符号。

这样,我们创建了一个道理边界,以使我们能够确保它匹配不仅是我们想要的。

为什么甚至包括提取保存令牌的数据,我们不想要?

通过使用数据,我们并不一定要保存提取令牌,提取模式使我们能够更好地抵御在HTML的变化。

这些额外的令牌可以帮助“面向未来”对改变网站所有者可能使我们在路上提取模式。

也有经常情况下(如本一)在数据点相邻的数据,我们将要提取每个不同的模式匹配。

在这里,我们只想要的产品ID,但我们还包括要提取产品的名称,因为它靠近我们的数据,因为它的价值会有所不同,每次提取模式的匹配。

如果你作为一个混乱的罢工点点,不用担心。

当你获得更多的经验,采用丝网刮刀,你就会明白为什么它们是重要的。

现在只相信我们的话,你会一般要使用正则表达式提取图案标记,而且它的往往是一个好主意,用提取的数据点的标记,以配合你不一定要保存。

当你获得更多的经验它会变得更加明显,当使用的数据你不希望保存提取标记。

ExtractorPatternTest

让我们给我们的新尝试提取模式。

按一下按钮测试图案。

你应该看到一个窗口出现,显示了提取数据。

数据再次集产品详细信息的链接模式,让我们放慢了一下,回顾一下这个窗口包含。

当提取模式匹配,就会产生一个DataSet。

你能想到的电子表格数据集一样-它包含行,列和单元格。

DataSet中的每个行被称为DataRecord。

阿DataRecord可以被看作是类似于电子表格中的一行。

在这种特殊情况下,我们DataSet有三列。

其中两个应该是熟悉的-它们分别对应于PRODUCT_TITLE和ProductID提取标记。

列表示的序列中,每一行提取秩序。

你会发现,该序列是从零开始的,这意味着在DataSet第一DataRecord是索引为0引用。

您还会注意到,该数据集有10条记录-第一页搜索结果中的每个产品中找到:

后来,当我们开始并讨论更多有关数据集DataRecords,只记得一个DataSet电子表格比喻就像是整个电子表格,和DataRecord就像电子表格单列英寸另一个好习惯正在申请进入你的提取方式,以确保他们经常正确匹配提取想要的文字。

继续前进,DataSet的窗口关闭了。

CreatingtheNextLinkExtractorPattern

早在去年响应选项卡,为文本“下一步”搜索。

该地区周围你会发现链接的HTML:

  

//www.screen-title="NextPage">[Next >>] 

幸运的是,由于我们的脚本的初始化工作,我们已经熟悉的网址,并且知道我们只需要担心的参数是关键字和网页。

创建一个新的提取模式,称之为下一环节,并使用以下提取模式来抓住了这些参数的值:

  

//www.screen-title="NextPage">[Next >>] 

PAGETokenProperties

与前面的提取模式,双击页面标记,并在显示的框中,单击保存在会话变量的复选框。

根据正则表达式部分,选择清单中的号码从选择下拉。

关闭“编辑令牌“框以保存设置。

号码正则表达式([\ð]+)只是表明,我们只希望页面标记来匹配数字(正则表达式基本上说,”匹配任何包含数字,或是逗号,并已至少一个人物的这些类型之一吧。

“)。

香港令牌属性下,双击关键字提取模式令牌进行编辑。

根据正则表达式部分,选择URL的GET参数从名单中选择下拉。

这表明,关键字提取模式应该只匹配一个字符的URL将被发现在一个GET参数。

你会发现,我们没有检查框保存关键字提取模式在会话变量标记。

我们已经有了,在一个会话变量的值,因此我们不必理会再次得到它。

KEYWORDTokenProperties

接下来,双击关键字提取模式令牌进行编辑。

根据正则表达式部分,选择URL的GET参数从名单中选择下拉。

这表明,关键字提取模式应该只匹配一个字符的URL将被发现在一个GET参数。

你会发现,我们没有检查框保存关键字提取模式在会话变量标记。

我们已经有了,在一个会话变量的值,因此我们不必理会再次得到它。

ExtractorPatternTest

尝试按一下按钮,测试图案提取模式。

好极了!

我们有两场比赛:

每个页面上(顶部和底部的页面)下一个环节之一。

Save

现在将是一个很好的时间来保存您的工作。

做到这一点的选择保存从文件菜单或通过点击(保存)图标。

TestRun

好吧,让我们尝试把整个事情一次。

点击购物网站在对象树刮会议,然后在日志选项卡。

单击清除日志按钮,我们将再次运行它,我们不希望得到执行感到困惑,从去年的日志文本,然后单击运行按钮刮会议启动它。

您应该看得更多的文字这一次在日志中,而不是最后一次。

要花费一分钟看一下吧,以确保您了解这是怎么回事。

PageScrapingScript

PageScrapingScriptExplanation

对于每一个细节环节,我们要刮相应的详细信息页面。

这是一个在屏幕刮常见的情形:

给定一个搜索结果页面,你需要提取的每一个产品,这意味着产品的细节后链接的每一个细节。

对于每一个细节页面,你很可能需要提取出相应的信息块的产品

Details

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1