针对给定查询的多个网站的数据聚合

时间:2012-10-06 18:07:48

标签: web-scraping

您好我将参与一个项目,其中我想查询几个网站并从中获取类似数据并将其呈现给用户。例如:如果用户的查询名称为“reebok shoes”,大小为“9.0”,范围在“$ 30到$ 75”之间,我的应用程序应该浏览一些网站(我将提供这些查询)并获取相关内容来自他们的数据。没有在DB中保存数据我需要格式化并将其提取给用户。我是新手,所以需要指出哪个框架可供选择,哪个工具或任何重要的东西我应该知道abt web scraping。我确实研究了一些工具和框架,但不确定哪一个能够处理查询特定的Web抓取。

2 个答案:

答案 0 :(得分:1)

经过深入研究后,我终于找到了SimplehtmlDom(PHP)解析器,它有助于提取html标签并将其存储到JSON文件中。然后我执行一些数据格式化功能并将格式化的JSON文件转发到前端,然后使用HTML i表示数据。我也尝试过Scrapy(Python),它比simplehtmldom容易得多。如果有人有任何疑问,请告诉我。

答案 1 :(得分:0)

尝试Crowbar解释远程网站上的所有Javascript,以获取真实内容(如果它不是静态的)。然后使用Crowbar本身来实现你的抓取,但如果你发现Javascript很麻烦(比如我),你可以使用Perl和HTML::TagParser从网站上获取内容。

例如,我必须从电子产品链中获取商店地址和商店名称,所以我做了:

my $html = HTML::TagParser->new($html);
my $address = $html->getElementsByClassName("mystoremystorecontentcontainer")->innerText();
my $shopname = $html->getElementsByClassName("mystoremystorecontentmiddle text_headline")->innerText();

$html是一个包含完整网站的字符串。)

如果您知道数据的排列方式 - 意味着标签具有哪个ID或类名,哪些数据保存数据 - 这可能非常简单。

一点警告:方法innerText()执行得很糟糕。如果文字不是特殊字符(例如流浪的'Ä'而不是Ä),那么一切都会失败。祝你好运......