2012-01-04 32 views
12

Node.js. kullanarak birçok tutorials explaining how to scrape public websites that don't require authentication/login karşılaştım.node.js kullanarak kimlik doğrulama gerektiren siteleri nasıl tarayabilirim?

Birisi, node.js'yi kullanarak oturum açmayı gerektiren sitelerin nasıl kırpılacağını açıklayabilir mi?

+1

Bu işe yarar mısın? Eğer yaptıysanız lütfen bir kod örneği gönderin. – codecowboy

+0

Olası kopyalama [node.js kullanılarak kimlik doğrulama gerektiren bir web sitesinin kazınması] (http://stackoverflow.com/questions/17765525/scraping-a-website-which-requires-authentication-using-node-js) – velop

cevap

17

Kullanım Mikeal's Request kütüphane, böyle destekleyen çerezleri etkinleştirmeniz gerekir: POST yaparken

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

Yani önce o sitede bir kullanıcı adı oluşturmanız gerekir (el) ve kullanıcı adı ve params olarak şifreyi geçmesi bu siteye istek. Bundan sonra sunucu, İstek'in hatırlayacağı bir çerezle yanıt verecektir, böylece o siteye giriş yapmanızı gerektiren sayfalara erişebileceksiniz.

Not: giriş sayfasında reCaptcha gibi bir şey kullanılıyorsa bu yaklaşım çalışmaz.

+0

@ alessioalex Teşekkür ederim. Önerinizi deneyip burada durumu güncelleyeceğim. – ekanna

+1

Lütfen bana söylediğim gibi bunu yapmamın nasıl bir örneğini verebilir misiniz, ancak şanssız bir asp.net sitesi çıkarmaya çalışıyorum. –

+1

Bir kod örneğini bir yere gönderirseniz (bir örnek veya bir şey), bu yüzden yanlış yaptığınızı anlayabilirim. Bu şekilde daha hızlı olurdu. – alessioalex

5

Veya superagent kullanarak:

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

agent sonra alma ve sadece agent.get, agent.post() normal vb çerezler, işaret edenlere, ayarı idare edecek kalıcı bir tarayıcıdır.

+0

Aracı için kaynaklarınız/belgeleriniz var mı? Http://visionmedia.github.io/superagent – velop

+1

@velop https://visionmedia.github.io/superagent/#preserving-cookies adresinden bulamadım – yckart

İlgili konular