Web scraping 针对给定查询从多个网站聚合数据

Web scraping 针对给定查询从多个网站聚合数据,web-scraping,Web Scraping,嗨,我要在一个项目中,我想查询几个网站,并从他们那里获取类似的数据,并提出它给用户的工作。例如:如果用户有一个名为“锐步鞋”的查询,大小为“9.0”,范围为“$30到$75”,我的应用程序应该为这些查询替换一些网站(我将提供这些网站),并从中获取相关数据。在不将数据保存在DB中的情况下,我需要格式化数据并将其获取给用户。我是新来的,所以我需要在哪一个框架上的指针,选择哪一个工具或任何重要的东西,我应该知道abt网络刮削。我确实研究了一些工具和框架,但不确定哪一个能够处理特定于查询的web抓取。尝

嗨,我要在一个项目中,我想查询几个网站,并从他们那里获取类似的数据,并提出它给用户的工作。例如:如果用户有一个名为“锐步鞋”的查询,大小为“9.0”,范围为“$30到$75”,我的应用程序应该为这些查询替换一些网站(我将提供这些网站),并从中获取相关数据。在不将数据保存在DB中的情况下,我需要格式化数据并将其获取给用户。我是新来的,所以我需要在哪一个框架上的指针,选择哪一个工具或任何重要的东西,我应该知道abt网络刮削。我确实研究了一些工具和框架,但不确定哪一个能够处理特定于查询的web抓取。

尝试解释远程网站上的所有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或类名,以及哪些id或类名保存了数据——这将非常简单

有一点警告:方法
innerText()
实现得很糟糕。如果文本没有清除特殊字符(例如,一个杂散的“
Ä
”而不是一个
Ä;
),所有的地狱都将毁灭。祝你好运…

尝试解释远程网站上的所有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或类名,以及哪些id或类名保存了数据——这将非常简单


有一点警告:方法
innerText()
实现得很糟糕。如果文本没有清除特殊字符(例如,一个杂散的“
Ä
”而不是一个
Ä;
),所有的地狱都将毁灭。祝你好运……

在做了一个很好的研究之后,我终于决定使用SimplehtmlDom(PHP)解析器,它可以帮助提取html标记并将其存储到JSON文件中。然后我执行一些数据格式化功能,并将格式化的JSON文件转发到前端,然后使用HTML表示数据。我还尝试了Scrapy(Python),它比simplehtmldom简单得多。如果有人有任何疑问,请告诉我。

在做了很好的研究之后,我终于找到了SimplehtmlDom(PHP)解析器,它可以帮助提取html标记并将其存储到JSON文件中。然后我执行一些数据格式化功能,并将格式化的JSON文件转发到前端,然后使用HTML表示数据。我还尝试了Scrapy(Python),它比simplehtmldom简单得多。如果有人有任何疑问,请告诉我。

不,对不起,我没有调查此事。到目前为止,我对上面描述的工具很满意。不,对不起,我没有研究这个问题。到目前为止,我对上述工具感到满意。