prsites: sintaxis y ejemplos de uso

He intentado dotar de la mayor flexibilidad a prsitios para que sea útil para diferentes usos.

Su sintaxis de uso la puedes ver escribiendo:

    $ ./prsitios -h

que te mostrará esta salida por pantalla:

MODO DE EMPLEO:
  prsitios [OPCIONES] URL

Obtiene las páginas de un dominio URL y sus subdominios indexadas por
Google mostrando su PR.

Requiere tener instalado el navegador de texto lynx.

OPCIONES:
  -d CHAR    carácter delimitador (por defecto coma ',')
  -f FILE    guarda el resultado en archivo FILE
  -h         muestra esta ayuda
  -i         obtiene exclusivamente el listado de páginas NO indexadas (requiere -m)
  -l NUM     NUMero de resultados a obtener de Google (por defecto 100, máximo 1000)
  -m SITEMAP lee las URLs de las páginas desde un sitemap en vez del comando site:
  -n PR      sólo muestra resultados con pagerank PR o superior
  -o         muestra los resultados ordenados por PR
  -s         omite subdominios
  -v         salida 'verbosa'
  -V         muestra la versión

El argumento URL no precisa que escribas el 'http://' delante, así que las dos siguientes instrucciones funcionarán exactamente igual:

    $ ./prsitios http://dominio.com
    $ ./prsitios dominio.com

Las opciones se pueden combinar de diferentes maneras, separando los argumentos opcionales con espacios o no, o juntando varias opciones seguidas detrás del mismo guión (-); si se juntan varias opciones, sólo la última puede tener argumento opcional, debiendo volver a escribir el guión (-) para posteriores opciones; es más difícil explicar que mostrar, así que lo entenderás mejor en los siguientes ejemplos, cuyas tres instrucciones son equivalentes:

    $ ./prsitios -o -s -v -d ";" -f /home/usuario/prsitios.txt dominio.com
    $ ./prsitios -o -s -v -d";" -f/home/usuario/prsitios.txt dominio.com
    $ ./prsitios -osvd ";" -f/home/usuario/prsitios.txt dominio.com

A continuación, va ampliada la descripción de las diferentes opciones

-d CHAR

La salida del programa muestra los resultados separando la URL del PageRank con una coma.  Puedes establecer otro delimitador escribiéndolo en esta opción.  No es imprescindible, pero en muchos casos será aconsejable escribirlo entre comillas para que el intérprete de comandos lo entienda correctamente y no lo procese como un metacarácter.

Ejemplo: para que el resultado muestre como delimitador un punto y coma:

    $ ./prsitios -d ";" dominio.com

Quizás pienses en usar una marca de tabulación "\t" como separador, pero eso no es bien interpretado por la orden sort que efectúa la ordenación, así que no podrás usarlo.

-f FILE

Los resultados se muestran por la salida estándard (la pantalla); puedes redirigirla a un archivo con el habitual mecanismo de redirección o utilizando esta opción.  Esto será especialmente útil en las salidas verbosas.  Como ejemplo, las instrucciones siguientes son equivalentes:

    $ ./prsitios -v -f /home/usuario/prsitios.txt dominio.com
    $ ./prsitios -v dominio.com > /home/usuario/prsitios.txt

 -h

Como vimos al principio, esta opción simplemente te mostrará la ayuda.  También se muestra la ayuda si hay alguna opción ilegal o algún error de sintaxis como no pasar el argumento correspondiente a la URL del dominio.   

-i

Esta opción es la indicada si deseas conocer las páginas de tu dominio que no están indexadas por Google.

Exige que se le pase un archivo de sitemap de donde leer las páginas de tu sitio, por tanto deberás usar la opción -m.

Por otra parte es incompatible con la opción -n de la cual prescindirá olímpicamente si la has introducido. 

Un ejemplo de uso, para conocer las páginas de dominio.com que no están indexadas por google, almacenándolas en el archivo no_indexadas.csv:

    $ ./prsitios -i -f no_indexadas.csv dominio.com

-l NUM

Por defecto, prsitios obtiene tan sólo los primeros 100 resultados, con esta opción puedes determinar cuantos deseas obtener, con el límite de los 1000 resultados que te ofrece el comando site: de Google.
 
Atención: este valor es el número de resultados que devolverá site:dominio.com; si filtras los resultados por PR (opción -n) o sin subdominios (opción -s) obtendrás un número menor de resultados (o ninguno, incluso).

Ejemplos:

$ ./prsitios -l 5 dominio.com (te mostrará los primeros cinco resultados)
$ ./prsitios -l 1000 dominio.com (te mostrará los primeros mil resultados, aunque en este caso es posible que desees una salida verbosa, opción -v)    

-m SITEMAP

Mediante esta opción las páginas a chequear no se obtendrán del comando site: de Google, sino del archivo sitemap cuyo nombre se pasa como argumento opcional.

Si se pasa la cadena vacía -m "" se asumirá por omisión que el nombre del sitemap es sitemap.xml.  En caso de tener otro nombre, especificarlo. 

Por ejemplo, para obtener el PageRank de las páginas de dominio.com contenidas en el archivo de sitemap denominado sitemap.xml:

$ ./prsitios -m "" dominio.com

Lo mismo, pero en este caso el sitemap se denomina gsitemap

$ ./prsitios -m gsitemap dominio.com

-n PR

Con esta opción podrás filtrar los resultados para que muestre sólo los que tengan un PageRank igual o superior al PR pasado como argumento de la opción.
    
Por ejemplo, para obtener las páginas con un PageRank igual o superior a 5:

    $ ./prsitios -n5 dominio.com

 -o

De forma predeterminada, prsitios te mostrará los resultados ordenados por URL; activando esta opción los mismos se mostrarán ordenados por PageRank de forma descendente.

-s

Los resultados incluyen, tal como lo hace el site:dominio.com de Google, los subdominios que puedan estar indexados.  Si quieres obtener los resultados excluyendo los subdominios, usa esta opción.
    
Atención: activar esta opción tampoco te mostrará las URLs de tipo www.dominio.com.  Por ejemplo la siguiente instrucción no te mostrará ningún resultado (Google tiene todas sus páginas con la estructura subdominio.dominio.com):

    $ ./prsitios -s google.com

-v

Salida verbosa.  El script trabaja y devuelve los resultados silenciosamente, pero si estás rastreando un sitio en profundidad y esperas obtener cinco mil resultados, posiblemente te impaciente (va por tí, Marcelo Gui?o) no ver nada en tu pantalla mientras el script trabaja.  Activando esta opción irás viendo por pantalla el trabajo que realiza el script.  Esto se muestra por la salida de error, así que, aunque redirijas la salida estándard a un fichero, los mensajes aparecerán por pantalla y no se mezclarán con los resultados.  Un par de ejemplos equivalentes (guardar en el archivo /home/usuario/prsitios.txt los mil primeros resultados para dominio.com viendo el progreso de trabajo):

    $ ./prsitios -l 1000 -v -f /home/usuario/prsitios.txt dominio.com
    $ ./prsitios -l 1000 -v dominio.com > /home/usuario/prsitios.txt

-V

Una opción trivial, muestra la versión del programa (por si me decidiese a ampliarlo)

Para finalizar un ejemplo más, éste real:

Obtener los 1000 primeros resultados de yahoo.com, de los cuales mostrar sólo los que tengan PageRank igual o superior a 7, ordenados por PageRank, mostrando por pantalla el progreso del trabajo y almacenando los resultados en el archivo resultados.txt:

$ ./prsitios -l 1000 -n 7 -o -v -f resultados.txt yahoo.com

Descarga de prsitios