8

Quiero rastrear un sitio con Greasemonkey y me pregunto si existe una mejor manera de almacenar valores temporalmente que con GM_setValue.¿La mejor manera de almacenar datos para el rastreador basado en Greasemonkey?

Lo que quiero hacer es rastrear mis contactos en una red social y extraer las URL de Twitter de sus páginas de perfil.

Mi plan actual es abrir cada perfil en su propia pestaña, para que se parezca más a una persona de navegación normal (es decir, css, scrits e imágenes serán cargadas por el navegador). Luego, almacene la URL de Twitter con GM_setValue. Una vez que todas las páginas de perfil han sido rastreadas, cree una página usando los valores almacenados.

No estoy tan contento con la opción de almacenamiento, sin embargo. Tal vez hay una mejor manera?

He considerado insertar los perfiles de usuario en la página actual para que todos pueda procesarlos con la misma instancia de script, pero no estoy seguro de si XMLHttpRequest parece indistinguible de las solicitudes normales iniciadas por el usuario.

Respuesta

4

He tenido un proyecto similar en el que necesitaba obtener una gran cantidad (datos de línea de factura) de un sitio web y exportarlo a una base de datos contable.

Puede crear un back-end .aspx (o PHP, etc.), que procesa los datos POST y los almacena en una base de datos.

Todos los datos que desee de una sola página pueden almacenarse en un formulario (oculto utilizando las propiedades de estilo si lo desea), utilizando nombres de campo o identificadores para identificar los datos. Entonces, todo lo que necesita hacer es hacer que la acción del formulario sea una página .aspx y enviar el formulario usando javascript.

(Alternativamente, puede agregar un botón de enviar a la página, lo que le permite verificar los valores del formulario antes de enviarlo a la base de datos).

1

¿Has considerado Google Gears? Eso le daría acceso a una base de datos SQLite local en la que puede almacenar grandes cantidades de información.

2

Creo que primero debe preguntarse por qué quiere usar Greasemonkey para su problema en particular. Greasemonkey fue desarrollado como una forma de modificar la experiencia de navegación, no como una araña web. Si bien es posible que pueda hacer que Greasemonkey haga esto usando GM_setValue, creo que encontrará que su solución es difícil y difícil de desarrollar. Eso, y requerirá muchos pasos manuales (como abrir todas esas pestañas, borrar las variables de Greasemonkey entre ejecuciones de su script, etc.).

¿Hay algo que esté haciendo para que se ejecute JavaScript en la página? Si es así, puede considerar usar Perl y WWW::Mechanize::Plugin::JavaScript. De lo contrario, recomendaría que hagas todo esto en un simple script de Python. Deseará echar un vistazo al módulo urllib2. Por ejemplo, echar un vistazo al siguiente código (tenga en cuenta que utiliza cookielib para apoyar las cookies, que es muy probable que necesita si la secuencia de comandos requiere que esté conectado a un sitio):

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

entonces usted puede hacer todo el procesamiento que desea usando expresiones regulares.

+0

El motivo de querer Greasemonkey es que la página que se rastrea realmente no aprueba los robots. Greasemonkey parecía ser la forma más fácil de hacer que el rastreador parezca legítimo. –

1

La razón para querer Greasemonkey es que la página que se arrastró hace realmente no aprobar de robots. Greasemonkey parecía la forma más fácil de hacer que el rastreador se viera legítimo como .

En realidad, la contaminación de su rastreador a través del navegador no lo hace más legítimo. ¡Todavía está rompiendo los términos de uso del sitio! WWW :: Mechanize, por ejemplo, es igualmente adecuado para 'suplantar' su cadena de agente de usuario, pero eso y el rastreo, si el sitio no permite arañas/rastreadores, ¡es ilegal!

0

La razón de querer Greasemonkey es que la página que se va a rastrear realmente no aprueba los robots. Greasemonkey parecía ser la forma más fácil de hacer que el rastreador parezca legítimo.

Creo que esta es la forma más difícil que se pueda imaginar de hacer que una oruga parezca legítima. Spoofing un navegador web es trivialmente fácil con una comprensión básica de los encabezados HTTP.

Además, algunos sitios tienen heurísticas que buscan clientes que se comportan como arañas, por lo que simplemente hacer que las solicitudes parezcan un navegador no significa que no sepan lo que está haciendo.

+0

No creo que establecer los encabezados correctos sea suficiente. También tiene que cargar imágenes, activar solicitudes AJAX y lo que no. –

Cuestiones relacionadas