【问题标题】:Node.io, JSDOM or PhantomJs ? or, YQL- data.html.cssselect?Node.io、JSDOM 还是 PhantomJs ?或者,YQL-data.html.cssselect?
【发布时间】:2012-11-24 09:50:32
【问题描述】:

我需要爬取一个特定的网站以挖掘出一些相关信息。 看起来首先我必须搜索该站点以获取相应的 URL,当被抓取时会为我提供详细信息。

假设,搜索 url 是

example.com/city1/search.html?cat=category1&locality=location1&page=1

这意味着,位置和页面可以有city2,city3等类别可以是category2,category3等。

我已经收集了所有的城市,类别,位置和页面可以递增直到结果不为空。

获得所有网址后,我将不得不从每个网址中挖掘出详细信息。我已经看到某些必要的信息作为 javascript 的一部分提供。

现在,我已经看到了 node.io、jsdom 和 phantomjs。我也看过yql。 由于我是新手,请根据您的经验建议我,在这种情况下哪个是理想的。

如果你能举出一些例子,那就太棒了。

【问题讨论】:

  • 不清楚您要做什么。当您似乎只想通过 HTTP 请求一些资源时,很难向您提出任何建议。
  • 嗯,目标是从详细的 URL 中获取商家的地址、联系方式等。这些业务可以是类别、“餐厅”、“客厅”、“电子”等。
  • 您想解析 URL 并访问查询字符串中的数据?或者,您想在该 URL 处获取资源,并解析返回的内容?请更清楚、更具体。
  • 这是第二个。获取 URL 并解析内容。
  • 您可以使用http.request (nodejs.org/api/http.html#http_http_request_options_callback) 发出请求。就解析返回数据而言,这取决于响应格式。如果您使用的是 Yahoo! 的 API,通常可以为响应指定 JSON,然后使用 JSON.parse() 将其转换为对象。

标签: node.js phantomjs web-crawler jsdom node.io


【解决方案1】:

PhantomJS 可以在您提供的 URL 中运行 javascript,如果 URL 包含 javascript/ajax 内容,这将非常有用。 虽然 YQL 并没有在网站上运行 javascript/ajax,但它很快就能搞定

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 2013-06-26
    • 1970-01-01
    • 2011-10-16
    • 1970-01-01
    相关资源
    最近更新 更多