8

Bir siteyi Greasemonkey ile taramak ve değerleri depolamak için GM_setValue uygulamasından daha iyi bir yol olup olmadığını merak ediyorum.Greasemonkey tabanlı tarayıcı için veri depolamanın en iyi yolu?

Yapmak istediklerim, kişilerinizi sosyal ağda taramak ve Twitter URL'lerini profil sayfalarından ayıklamak.

Şu anki planım, her profili kendi sekmesinde açmaktır, böylece normal bir göz atma kişisine benziyor (tarayıcı, css, scrits ve görüntüler yüklenecektir). Ardından Twitter URL'sini GM_setValue ile saklayın. Tüm profil sayfaları tarandıktan sonra, kayıtlı değerleri kullanarak bir sayfa oluşturun.

Depolama seçeneklerinden çok memnun değilim. Belki daha iyi bir yolu var mı?

Kullanıcı profillerini geçerli sayfaya yerleştirmeyi düşündüm, böylece hepsini aynı komut dosyası örneğiyle işleyebilirim, ancak XMLHttpRequest'in normal kullanıcı tarafından başlatılan isteklerden ayırt edilemez olup olmadığından emin değilim.

cevap

4

Bir web sitesinden çok fazla (fatura satır verileri) almam ve bir muhasebe veritabanına aktarmam gereken benzer bir projem vardı.

POST verilerini işleyen ve bir veritabanında saklayan bir .aspx (veya PHP vb.) Arka uç oluşturabilirsiniz.

Tek bir sayfadan istediğiniz herhangi bir veri, verileri tanımlamak için alan adlarını veya kimlikleri kullanarak, bir formda saklanabilir (stil özelliklerini kullanarak gizlenebilir). Sonra yapmanız gereken tek şey, form eylemini bir .aspx sayfası yapmak ve formu javascript kullanarak göndermek.

(Alternatif olarak, veritabanına göndermeden önce form değerlerini kontrol etmenizi sağlayan sayfaya bir gönder düğmesi ekleyebilirsiniz).

1

Google Gears’ı düşündünüz mü?

2

Büyük miktarda bilgiyi depolayabileceğiniz yerel bir SQLite veritabanına erişebilmenizi sağlar. İlk olarak, Greasemonkey'i özel sorununuz için neden kullanmak istediğinizi kendinize sormalısınız. Greasemonkey, bir web örümcek olarak değil, kişinin göz atma deneyimini değiştirmenin bir yolu olarak geliştirildi. Greasemonkey'i GM_setValue kullanarak yapmak mümkün olsa da, çözümünüzü kludgy ve geliştirmek zor olacak şekilde bulacağınızı düşünüyorum. Bu, ve birçok manuel adım gerektirecektir (tüm bu sekmelerin açılması, komut dosyanızın çalıştırılması arasındaki Greasemonkey değişkenlerinin temizlenmesi gibi).

Yaptığınız herhangi bir şey, sayfadaki JavaScript'in yürütülmesini gerektiriyor mu? Eğer öyleyse, Perl ve WWW::Mechanize::Plugin::JavaScript kullanmayı düşünebilirsiniz. Aksi takdirde, tüm bunları basit bir Python betiğinde yapmanızı öneririm. urllib2 modülüne bir göz atmak isteyeceksiniz.

import urllib2 
import cookielib 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookielib.CookieJar())) 
response = opener.open("http://twitter.com/someguy") 
responseText = response.read() 

Sonra yapabilirsiniz: Örneğin, aşağıdaki kod bir göz atın (sizin komut Bir siteye giriş yapmanız gerektiriyorsa ihtiyacınız büyük olasılıkla olacak çerezleri, desteklemek için cookielib kullandığına dikkat edin) Düzenli ifadeler kullanmak istediğiniz tüm işlemler.

+0

Greasemonkey'i istemenin nedeni, taranacak sayfanın gerçekten robotları onaylamamasıdır. Greasemonkey, tarayıcıyı meşru göstermenin en kolay yolu gibi görünüyordu. –

1

Greasemonkey'yi isteyen nedeni taranmak üzere sayfa gerçekten robotların onaylamaz yapmasıdır. Greasemonkey, tarayıcının yasal olmasını sağlamak için en kolay gibi görünüyordu.

Tarayıcınızın tarayıcısından yazdırılması, daha meşru olmasını sağlamaz. Sitenin kullanım koşullarını hala kırıyorsunuz! WWW :: Mechanize örneğin eşit Kullanıcı Aracı Dize 'parodi' için uygundur, ancak bu ve site, örümcekler/tarayıcılar izin vermezse tarama, yasadışı!

0

Greasemonkey'i istemenin nedeni, taranacak sayfanın gerçekten robotları onaylamamasıdır. Greasemonkey, tarayıcıyı meşru göstermenin en kolay yolu gibi görünüyordu.

Bu, bir tarayıcının görünümünü meşrulaştırmak için akla gelebilecek en zor yoldur. Bir web tarayıcısını taklit etmek, bazı HTTP üstbilgileri anlayışı ile oldukça kolaydır. Ayrıca, bazı siteler örümcekler gibi davranan müşterileri arayan buluşsal bilgilere sahiptir, bu nedenle istekleri tarayıcıya benzetmek, ne yaptığınızı bilmeyecek anlamına gelmez.

+0

Doğru başlıkların ayarlanmasının yeterli olmadığını düşünüyorum. Ayrıca, görüntüleri yüklemeniz, AJAX isteklerini tetiklemeniz ve nelerin yapılmaması gerekir. –