2012-01-04 112 views
12

我遇到過許多使用node.js.的tutorials explaining how to scrape public websites that don't require authentication/login如何使用node.js來刮取需要驗證的網站?

有人可以解釋如何刮取需要使用node.js登錄的網站嗎?

+1

您是否得到了這個工作?如果你這樣做,請發佈代碼示例。 – codecowboy 2014-03-02 13:10:50

+0

[抓取需要使用node.js進行認證的網站]的可能重複(http://stackoverflow.com/questions/17765525/scraping-a-website-which-requires-authentication-using-node-js) – velop 2016-03-15 15:25:02

回答

17

使用Mikeal's Request庫,您需要啓用Cookie支持這樣的:

var request = request.defaults({jar: true}) 

所以,你首先應該在該網站上創建一個用戶名(手動),使開機自檢時傳遞的用戶名和密碼PARAMS請求該網站。之後,服務器將響應請求會記住的cookie,以便您可以訪問要求您登錄該網站的頁面。

注意:如果在登錄頁面上使用reCaptcha之類的東西,則此方法不起作用。

+0

@ alessioalex謝謝。我會嘗試你的建議並在此更新狀態。 – ekanna 2012-01-06 10:06:17

+1

你可以請我提供任何樣品,如何做,我如你所說那樣做,但沒有運氣,我想要報廢一個asp.net網站。 – 2013-07-21 08:00:45

+1

如果你在某個地方發佈代碼示例(一個要點或其他東西),這將會很有用,所以我可以弄清楚你做錯了什麼。這樣會更快。 – alessioalex 2013-07-22 09:30:06

5

或者使用superagent

var superagent = require('superagent') 
var agent = superagent.agent(); 

agent是那麼持久的瀏覽器,它會處理獲取,設置cookies,參照網址等只需agent.getagent.post()正常。

+0

您是否有代理商的來源/文檔?我找不到http://visionmedia.github.io/superagent – velop 2016-03-15 15:22:47

+1

@velop https://visionmedia.github.io/superagent/#preserving-cookies – yckart 2017-05-28 02:11:30