2012-01-04 23 views
12

Tôi đã gặp rất nhiều tutorials explaining how to scrape public websites that don't require authentication/login, sử dụng node.js.Làm cách nào để tôi có thể xóa các trang web yêu cầu xác thực bằng cách sử dụng node.js?

Ai đó có thể giải thích cách xóa các trang web yêu cầu đăng nhập bằng cách sử dụng node.js?

+1

bạn có làm việc này không? Xin vui lòng gửi một mẫu mã nếu bạn đã làm. – codecowboy

+0

Có thể trùng lặp [Cạo một trang web yêu cầu xác thực bằng cách sử dụng node.js] (http://stackoverflow.com/questions/17765525/scraping-a-website-which-requires-authentication-using-node-js) – velop

Trả lời

17

Sử dụng Mikeal's Request thư viện, bạn cần phải kích hoạt cookies hỗ trợ như thế này:

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

Vì vậy, trước tiên bạn cần tạo một tên người dùng trên trang web đó (bằng tay) và vượt qua tên truy cập và mật khẩu như params khi thực hiện quá trình POST yêu cầu đến trang web đó. Sau đó máy chủ sẽ trả lời bằng một cookie mà Yêu cầu sẽ ghi nhớ, vì vậy bạn sẽ có thể truy cập các trang yêu cầu bạn đăng nhập vào trang web đó.

Lưu ý: cách tiếp cận này không hoạt động nếu một cái gì đó như reCaptcha được sử dụng trên trang đăng nhập.

+0

@ alessioalex Cảm ơn bạn. Tôi sẽ thử đề xuất của bạn và cập nhật trạng thái tại đây. – ekanna

+1

Bạn có thể vui lòng cung cấp cho tôi bất kỳ mẫu làm thế nào để làm điều đó tôi đang làm điều đó như bạn nói nhưng không có may mắn tôi đang cố gắng để loại bỏ một trang asp.net. –

+1

Nó sẽ hữu ích nếu bạn đăng một mẫu mã ở đâu đó (một ý chính hoặc một cái gì đó), vì vậy tôi có thể tìm ra những gì bạn đang làm sai. Nó sẽ nhanh hơn theo cách này. – alessioalex

5

Hoặc sử dụng superagent:

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

agent là sau đó một trình duyệt dai dẳng, mà sẽ xử lý nhận và thiết lập các tập tin cookie, referers, vv Chỉ cần agent.get, agent.post() như bình thường.

+0

Bạn có nguồn/tài liệu cho đại lý không? Tôi không thể tìm thấy bất kỳ thông tin nào trên http://visionmedia.github.io/superagent – velop

+1

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

Các vấn đề liên quan