嗨,我将从事一个项目,其中我想查询几个网站并从中获取类似的数据并将其呈现给用户。例如:如果用户的查询名称为“reebok shoes”,大小为“9.0”,范围在“$30 到 $75”之间,我的应用程序应该为这些查询跳过几个网站(我将提供这些网站)并获取相关的来自他们的数据。不将数据保存在数据库中,我需要格式化并将其获取给用户。我是新手,所以需要关于选择哪个框架或哪个工具或任何我应该知道的关于网络抓取的重要内容的指针。我确实研究了一些工具和框架,但不确定哪一个能够处理特定于查询的网络抓取。
问问题
1334 次
2 回答
1
在做了很好的研究之后,我终于选择了 SimplehtmlDom (PHP)parser,它有助于提取 html 标签并将其存储到 JSON 文件中。然后我执行一些数据格式化功能并将格式化的 JSON 文件转发到前端,然后使用 HTML 我代表数据。我还尝试了 Scrapy (Python),它比 simplehtmldom 容易得多。让我知道是否有人有任何疑问。
于 2012-11-05T19:24:40.617 回答
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()
实施不当。如果文本中的特殊字符不干净(例如,杂散的 ' Ä
' 而不是Ä
),那么所有的地狱都会失败。祝你好运...
于 2012-10-06T18:20:43.020 回答