2011-03-26 16 views
15

node.js.'de kapsamlı ekran kazıma kullanan bir web uygulamasını bir araya getirme sürecindeyim. Her köşede akıntıya karşı savaştığımı hissediyorum. Bunu yapmanın daha kolay bir yolu olmalı. En önemlisi, iki şey rahatsız edici şunlardır:node.js'de ekran kazıma işleminin en zarif yolu nedir?

  1. Kurabiye yayılım. 'Set-cookie' dizisini yanıt başlıklarından çıkarabiliyorum, ancak diziden cookie'leri ayrıştırmak için string işlemleri yapmak son derece hackish. Aşağıdaki yönlendirmeyi yeniden yönlendirin. Her bir isteğin, 302 durum kodu döndüğünde yeniden yönlendirmeler izlemesini istiyorum.

Ben yararlı görünüyordu iki şey geldi ama sonunda kullanamadı: '

çerezleri yaymak herhangi bir JavaScript ekrandan veri-vari kütüphaneler, orada yönlendirmeleri takip edin ve HTTPS desteğini musunuz? Bunu nasıl daha kolay hale getirebileceğine dair herhangi bir işaret var mı?

+6

Zombie'yi ve güneşin altındaki diğer tüm tarayıcıları denedikten sonra, phantomjs ile birlikte düğümü kullanarak sona erdim ve güzel çalıştı. Düğüm içinde spawn yöntemini kullanır ve hayaletten gelen yanıtları yakalarsınız. Tanımlama bilgileri, yönlendirmeler, oturum açma oturumları ve gelişmiş javascript ile çalışan tek javascript tabanlı çözümdür. Yakında bir blog yazısı oluşturacağım ve geri dönüp yorum yapacağım. – Clint

+1

Ayrıca, http://node.io –

cevap

3

mikeal'dan https://github.com/mikeal/request'u kontrol etmek isteyebilirsiniz, sadece onunla sohbet odasına konuştum ve o anda çerezleri işlemediğini söylüyor ama bu arada sizin için bunları yürütmek üzere bir alt modül yazabilirsiniz. bunu yönlendirmek açısından

güzel işler :)

+0

Çerez desteği, aradığım ana şey. 'Set-cookie' dizisinin ayrıştırılmasını işleyen ve uygun bir üstbilgi Cookie girdisi çıktılayan node.js (veya bir npm paketi) içinde herhangi bir destek var mı? – Mike

+0

, https: // github adresinde incelediniz.com/bmeck/node-cookiejar – RobertPitt

+6

Ben sadece çerez desteği eklendi :) – mikeal

3

olduğunu Başka bir tipik bir tarayıcı destekler (çünkü bir web tarayıcısı olduğu için).

Şunu bir vuruş yapın, tam olarak aradığınız şey bu olabilir.

+0

şimdi öldü :( –

+0

Bunu, Phantom.js'nin eski bir sürümü ile kullanmanız gerekebilir. İşte bir eğitici: http://net.tutsplus.com/tutorials/javascript-ajax/web-scraping-with-node -js / – Clint

İlgili konular