2012-11-24 24 views
5

Bir sonraki adıma geçmeden önce betiğin (phantomjs veya casperjs) manuel insan girişi (klavye yazımı) için durmasını sağlamak mümkün mü? Örneğin, betik bir formu dolduracak ve tüm ekranı .png olarak dışa aktaracak, ardından kullanıcı girişi tıklatmadan önce son alanı doldurmak için bekleyecektir. Captcha bunun için gerekli bariyerlerden biridir. Captcha kırıcı/çözücü ya da bunun gibi bir şeyle uğraşmak istemiyorum çünkü her bir koşu için sadece bir zaman meselesi.phantomjs çalışırken manüel giriş casperjs

Herhangi bir yardım?

cevap

3

Bunu hiç yapmadım, ancak tarayıcımda/fantomda çalıştırılan yazıyı biliyorum, yerel bir web sunucusuna bir ajax isteği gönderebilir. Dış iletişimin var.

->screenshot 
->send to local server 
->someones open web browser polls the server for new data entry jobs 
->human submits one 
->server receives submission 
->server routes the response back to that initial ajax request 
->that ajax request that got sent from phantomjs finally receives a response. 

Bu iş akışı

fantom/casper olası dış iletişimin her türlü kullanılarak yapılabilir (Sadece bunlara aşina değilim). Eminim ajax işe yarar, ben de bunu örnek olarak kullandım.

+2

Şimdiki çözümüm, FileSystem'ı kullanmak ve captcha dizesi için bir dosya içeriğini okumaktır. Ama bunu yapmanın daha iyi bir yolu olup olmadığını bulmaya çalışıyorum. Ajax bana aşırı geliyor. –

+1

hey @HP. Seninle aynı durumdayım. FileSystem ile ilgili çözüm hakkında daha fazla bilgi verebilir misiniz? Bunu uygulamak için daha iyi bir yol buldunuz mu? Teşekkür ederim –

+1

FS kullanımı çok çirkin bir hack. Tavsiye etmem. Temel olarak bir dosya okumadan önce biraz beklemek için bir çeşit "setTimeout" kullanıyorum. Yani bu 20 saniye içinde, girişi sağlamak için metin dosyasını hızla düzenlerim. –