2011-03-26 49 views
15

我正在使用node.js在網頁應用程序中使用大量的屏幕抓取工作。我感覺自己在每一個角落都與當前的潮流搏鬥。必須有一個更簡單的方法來做到這一點。最值得注意的是,兩件事情令人不快:在node.js中做屏幕抓取的最優雅的方法是什麼?

  1. Cookie傳播。我可以從響應頭文件中取出'set-cookie'數組,但是執行字符串操作來將數組解析出數組感覺非常駭人聽聞。

  2. 重定向以下。我希望每個請求都能在302狀態碼返回時通過重定向進行跟蹤。

我遇到了兩件事看着有用的,但我不能在最後使用:

是否有任何JavaScript screenscraping-esque庫傳播cookies,遵循重定向和支持HTTPS?任何關於如何使這更簡單的指針?

+6

在陽光下嘗試殭屍和其他無頭瀏覽器之後,我最終使用節點與phantomjs一起使用,並且它的工作非常漂亮。您可以在節點中使用spawn方法並從幻影中獲取響應。這是我發現的唯一一款基於javascript的解決方案,它可以處理cookie,重定向,登錄會話以及任何使用高級javascript的東西。我將很快發佈一篇博客文章,並回復並發表評論。 – Clint 2011-03-29 15:39:55

+1

還有http://node.io – 2012-09-06 01:43:45

回答

3

您可能希望從mikeal中查看https://github.com/mikeal/request,我剛纔告訴他聊天室,他說目前它不處理cookie,但您可以在此期間爲您編寫子模塊以處理這些問題。

的問候重定向它處理精美:)

+0

Cookie支持是我正在尋找的主要內容。 node.js(或npm包)中是否支持處理「set-cookie」數組的解析,並輸出適當的Cookie Cookie條目? – Mike 2011-03-27 14:32:03

+0

你看過https:// github。com/bmeck/node-cookiejar – RobertPitt 2011-03-27 17:17:58

+6

我剛剛添加了Cookie支持:) – mikeal 2011-03-28 03:51:28

3

原來有人做了一個的Node.js模塊phantomjs:

https://github.com/sgentle/phantomjs-node

雖然幻影是相當沉重的,它也支持SSL,cookies和一切否則一個典型的瀏覽器支持(畢竟它是一個webkit瀏覽器)。

給它一個鏡頭,它可能正是你在找什麼。

+0

現在已經死了:( – 2012-12-27 21:32:06

+0

您可能需要將它與Phantom.js的舊版本一起使用。以下是一個教程:http://net.tutsplus.com/tutorials/javascript-ajax/web-scraping-with-node -js / – Clint 2012-12-31 15:18:41

相關問題