Foros del Web » Programando para Internet » ASP Clásico »

Software de robot, araña, spider, crawler o como lo llamen

Estas en el tema de Software de robot, araña, spider, crawler o como lo llamen en el foro de ASP Clásico en Foros del Web. Bueno Creo que esto es tema antiguo, hace unos días, coloque no solo un post con un pequeño pero potente espider, sino que tambien el ...

  #16 (permalink)  
Antiguo 19/02/2003, 17:10
 
Fecha de Ingreso: diciembre-2002
Mensajes: 100
Antigüedad: 22 años, 4 meses
Puntos: 1
Bueno Creo que esto es tema antiguo, hace unos días, coloque no solo un post con un pequeño pero potente espider, sino que tambien el codigo fuente......


si lo que desean es buscar los metaname titulo, description y keyword......

Aqui lo tienen.... Valla que me rompi la Cabezota co este script, pero lo logre.

si lo que deseas es verlo funcionando:

Spider

El furmulario para enviar la url a indexar.......

<<<<<<<<<<<<<<<<<urlspider.asp>>>>>>>>>>>>>>>>>> >
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table width="450" border="0">
<tr>
<td><form action="spider.asp" method="post" name="form" id="form">
<input name="url" type="text" id="url" value="http://www.forosdelweb.com" size="55">
<input type="submit" name="Submit" value="Indexar">
</form></td>
</tr>
</table>
</body>
</html>
<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>


El script que indexa las páginas...

<<<<<<<<<<<<<<<<<<<<spider.asp>>>>>>>>>>>>>>>>>>
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
dim HTTP, url
url=Request.Form("url")
set HTTP=Server.CreateObject("Microsoft.XMLHTTP")
HTTP.open "GET", url , False
HTTP.Send
stu=HTTP.statusText
if HTTP.statusText="OK" then
strFileContents = HTTP.ResponseText
else
Response.write "Error obteniendo Página " & HTTP.statustext
end if
set HTTP = nothing


%>
<%
Dim key1, key2, errorkey, errordes

strFileContents = replace(strFileContents, "<meta name=keywords", "<meta name=""keywords""")
strFileContents = replace(strFileContents, "<meta NAME=keywords", "<meta name=""keywords""")
strFileContents = replace(strFileContents, "<META NAME=keywords", "<meta name=""keywords""")
strFileContents = replace(strFileContents, "<META NAME=KEYWORDS", "<meta name=""keywords""")
strFileContents = replace(strFileContents, "<META name=keywords", "<meta name=""keywords""")
strFileContents = replace(strFileContents, "<META name=KEYWORDS", "<meta name=""keywords""")
strFileContents = replace(strFileContents, "<meta NAME=KEYWORDS", "<meta name=""keywords""")

strFileContents = replace(strFileContents, "<meta name='keywords'", "<meta name=""keywords""")
strFileContents = replace(strFileContents, "<meta NAME='keywords'", "<meta name=""keywords""")
strFileContents = replace(strFileContents, "<META NAME='keywords'", "<meta name=""keywords""")
strFileContents = replace(strFileContents, "<META NAME='KEYWORDS'", "<meta name=""keywords""")
strFileContents = replace(strFileContents, "<META name='keywords'", "<meta name=""keywords""")
strFileContents = replace(strFileContents, "<META name='KEYWORDS'", "<meta name=""keywords""")
strFileContents = replace(strFileContents, "<meta NAME='KEYWORDS'", "<meta name=""keywords""")

strFileContents = replace(strFileContents, "<meta name=""keywords""", "<meta name=""keywords""")
strFileContents = replace(strFileContents, "<meta NAME=""keywords""", "<meta name=""keywords""")
strFileContents = replace(strFileContents, "<META NAME=""keywords""", "<meta name=""keywords""")
strFileContents = replace(strFileContents, "<META NAME=""KEYWORDS""", "<meta name=""keywords""")
strFileContents = replace(strFileContents, "<META name=""keywords""", "<meta name=""keywords""")
strFileContents = replace(strFileContents, "<META name=""KEYWORDS""", "<meta name=""keywords""")
strFileContents = replace(strFileContents, "<meta NAME=""KEYWORDS""", "<meta name=""keywords""")

strFileContents = replace(strFileContents, "<meta name=description", "<meta name=""description""")
strFileContents = replace(strFileContents, "<meta NAME=description", "<meta name=""description""")
strFileContents = replace(strFileContents, "<META NAME=description", "<meta name=""description""")
strFileContents = replace(strFileContents, "<META NAME=DESCRIPTION", "<meta name=""description""")
strFileContents = replace(strFileContents, "<META name=description", "<meta name=""description""")
strFileContents = replace(strFileContents, "<META name=DESCRIPTION", "<meta name=""description""")
strFileContents = replace(strFileContents, "<meta NAME=DESCRIPTION", "<meta name=""description""")

strFileContents = replace(strFileContents, "<meta name='description'", "<meta name=""description""")
strFileContents = replace(strFileContents, "<meta NAME='description'", "<meta name=""description""")
strFileContents = replace(strFileContents, "<META NAME='description'", "<meta name=""description""")
strFileContents = replace(strFileContents, "<META NAME='DESCRIPTION'", "<meta name=""description""")
strFileContents = replace(strFileContents, "<META name='description'", "<meta name=""description""")
strFileContents = replace(strFileContents, "<META name='DESCRIPTION'", "<meta name=""description""")
strFileContents = replace(strFileContents, "<meta NAME='DESCRIPTION'", "<meta name=""description""")

strFileContents = replace(strFileContents, "<meta name=""description""", "<meta name=""description""")
strFileContents = replace(strFileContents, "<meta NAME=""description""", "<meta name=""description""")
strFileContents = replace(strFileContents, "<META NAME=""description""", "<meta name=""description""")
strFileContents = replace(strFileContents, "<META NAME=""DESCRIPTION""", "<meta name=""description""")
strFileContents = replace(strFileContents, "<META name=""description""", "<meta name=""description""")
strFileContents = replace(strFileContents, "<META name=""DESCRIPTION""", "<meta name=""description""")
strFileContents = replace(strFileContents, "<meta NAME=""DESCRIPTION""", "<meta name=""description""")

strFileContents = replace(strFileContents, "<TITLE>", "<title>")
strFileContents = replace(strFileContents, "</TITLE>", "</title>")

if InStr(1, strFileContents, "<meta name=""keywords""",1) > 0 then
key1 = InStr(1, strFileContents, "<meta name=""keywords""", 1)
key1 = key1 + Len("<meta name=""keywords""")
key2 = InStr(key1, strFileContents, """>", 1)

keywords = Trim(Mid(strFileContents, key1, (key2 - key1)))

keywords = Replace (keywords, "Content=""", "")
keywords = Replace (keywords, "content=""", "")
keywords = Replace (keywords, "CONTENT=""", "")
keywords = Replace (keywords, "content=", "")
keywords = Replace (keywords, "CONTENT=", "")
keywords = Replace (keywords, "content='", "")
keywords = Replace (keywords, "CONTENT='", "")

Dim desc1, desc2
if InStr(1, strFileContents, "<meta name=""description""",1) > 0 then
desc1 = InStr(1, strFileContents, "<meta name=""description""", 1)
desc1 = desc1 + Len("<meta name=""description""")
desc2 = InStr(desc1, strFileContents, """>", 1)

descripcion = Trim(Mid(strFileContents, desc1, (desc2 - desc1)))

descripcion = Replace (descripcion , "Content=""", "")
descripcion = Replace (descripcion , "content=""", "")
descripcion = Replace (descripcion , "CONTENT=""", "")
descripcion = Replace (descripcion , "content=", "")
descripcion = Replace (descripcion , "CONTENT=", "")
descripcion = Replace (descripcion , "content='", "")
descripcion = Replace (descripcion , "CONTENT='", "")

if InStr(1, strFileContents, "<title>",1) > 0 then

tit1 = InStr(1, strFileContents, "<title>", 1)
tit1 = tit1 + Len("<title>")
tit2 = InStr(tit1, strFileContents, "</title>", 1)
titulo = Trim(Mid(strFileContents, tit1, (tit2 - tit1)))
titulo = Replace (titulo, "'", " ")

if keywords <> "" then
response.Write("<strong>pagina Indexable</strong><br><br>")
response.Write("<strong>"+stu+"</strong><br><br>")
response.Write(keywords)
response.Write("<br><br>")
response.Write(descripcion)
response.Write("<br><br>")
response.Write(titulo)
else
response.Write("pagina No Indexable")
'response.Write("<br><br>")
end if
end if
end if
end if
'set HTTP = nothing
%>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<p>&nbsp;</p>
<p>
</p>
<table width="450" border="0">
<tr>
<td><form name="form1" method="post" action="spider.asp">
<input name="url" type="text" id="url" value="http://" size="55">
<input type="submit" name="Submit" value="Indexar">
</form></td>
</tr>
</table>
</BODY>
</HTML>
<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>

Por cierto aprovechen y le echan un vistazo a una tienda virtual que tengo montada en: tienda
si me convencen le doy el codigo...Je Je Je,.

era una broma pongo el codigo a la orden...

Última edición por RakoVky; 19/02/2003 a las 17:22
  #17 (permalink)  
Antiguo 20/02/2003, 02:18
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 23 años, 6 meses
Puntos: 5
Ummmm...

¿Por qué haces todos esos "replace"? Me refiero a que no seria más fácil convertirlo todo a minúsculas?

Explica también lo que haces con key1, key2, desc1, desc2... pleaseeeee

Un beso

Última edición por Helbira; 20/02/2003 a las 02:20
  #18 (permalink)  
Antiguo 20/02/2003, 04:20
Avatar de garcef  
Fecha de Ingreso: agosto-2001
Ubicación: Querétaro, México
Mensajes: 289
Antigüedad: 23 años, 8 meses
Puntos: 0
Me parece que en Webexperto.com.ar tienen un buscador que se conecta directamente a bases de datos y hace la busqueda ahi
__________________
garcef
Facebook: url]https://www.facebook.com/memelandiax[/url]
Twitter: @Memelandiax Vine:memelandiax Instagram: memelandiax Youtube: memelandiax
  #19 (permalink)  
Antiguo 20/02/2003, 14:00
Avatar de Ellyza  
Fecha de Ingreso: agosto-2002
Ubicación: España
Mensajes: 176
Antigüedad: 22 años, 8 meses
Puntos: 0
A mí no me funcionó ayer pero hoy sí, el problema es que la mayoría de enlaces que tiene la página ya no existen, de todas formas muchas gracias por tu aportación Helbira.
  #20 (permalink)  
Antiguo 20/02/2003, 14:07
Avatar de Ellyza  
Fecha de Ingreso: agosto-2002
Ubicación: España
Mensajes: 176
Antigüedad: 22 años, 8 meses
Puntos: 0
Muchas gracias rakovky, yo ya probé tu script y funciona de maravilla, lo que pasa es que debes saber la URL de la página de la que quieres ver sus meta, para eso me bastaría con ir a la dirección y ver código fuente. O utilizar tu script y luego copy-paste en la tabla de la bd.
La idea es encontrar un sript o programilla que lo haga solo.
Hay un programa que se llama web data extractor y se puede descargar una versión shareware en www.rafasoft.com , sería algo por el estilo lo que yo busco pero que además indexara el texto de las páginas ya que muchas web no están bien diseñadas y no tiene etiquetas meta, por lo qiue dejas de indexar muchas webs.
Un saludo y gracias por el script.
  #21 (permalink)  
Antiguo 22/02/2003, 13:34
 
Fecha de Ingreso: diciembre-2002
Mensajes: 100
Antigüedad: 22 años, 4 meses
Puntos: 1
Bueno Maestros... saludos desde Venezuela.

Bueno este como ven es un script experimental.

pero se pueden hacer muchas cosas con el, por ejemplo:

response.Write(keywords)
response.Write("<br><br>")
response.Write(descripcion)
response.Write("<br><br>")
response.Write(titulo)

estos resultados lo puedes colocar en una BD. En realidad lo que yo particularmente quuiero lograr con este scripts, es crear un sistema capaz de indexar url previamentes guardas en una BD.

es decir las solicitudes de petición de indexación que hacen los usuarios cada semana, esto si seria un verdadero robot o spider al estilo Yahoo.

Hasta este punto lo que he logrado no cabe la menor duda de que es bastante. Lamento no haber terminado esto.

pero resulta que abandone el proyecto cuando me entere que google ha hecho publicas sus bases de datos en sus 7000 servidores.

lo que estoy haciendo es modificando mi spider para que se alimente con las bases de datos de google.

para mayor info:

Información

lo malo: lo estoy haciendo en PHP.....

Debido ha que existen mayores posibilidades que con ASP
  #22 (permalink)  
Antiguo 22/02/2003, 15:19
 
Fecha de Ingreso: diciembre-2002
Mensajes: 100
Antigüedad: 22 años, 4 meses
Puntos: 1
Elvira......

¿Por qué haces todos esos "replace"? Me refiero a que no seria más fácil convertirlo todo a minúsculas?

esta es una forma de hacerlo, recuerda que se crea una comparación de lo que posiblemente encontrariamos en los valores meta de la url a indexar. Por lo que es posible (la voz de la experiencia) que al comparar las cadenas nos encontermos con por ejemplo:

"<meta name=keywords" que es diferente a
"<meta name=""keywords""" cierto verdad si este patron de comparación no existe, el spider sencillamente no arrojara los meta de las página a indexar.

por lo que he colocado los errores mas comunes en la estructura de los meta, pero admito es una forma de hacerlo, por lo que se aceptan sugerencias......


Explica también lo que haces con key1, key2, desc1, desc2... pleaseeeee

if InStr(1, strFileContents, "<meta name=""keywords""",1) > 0 then
key1 = InStr(1, strFileContents, "<meta name=""keywords""", 1)
key1 = key1 + Len("<meta name=""keywords""")
key2 = InStr(key1, strFileContents, """>", 1)

supongamos que la página no tiene Keywords sencillamente no se cumple la condición, el valor arrojado es 0

if InStr(1, strFileContents, "<meta name=""keywords""",1) > 0

por otro parte si se cumple:

supongamos que InStr no da la posición en la que se encuentra

"<meta name=""keywords"""

supongamos que es 355 almacenamos este valor en key1

la instrucción siguiente nos da el numero de caracter de la cadena y los suma a el resultado anterior.

"<meta name=""keywords""" = 21

355 + 21 = 376 la posición exacta en donde comienzan la palabras clave.

¿que hago con todo esto?, muy simple:

almaceno en la variable key2 la posición en la que se encuentra el cierre del valor del meta es decir:

""">"

por supuesto buscado desde el comienzo de los valores del meta buscado(376=key1)

key2 = InStr(key1, strFileContents, """>", 1)

supongamos que el valor arrojado es 520

entonces ya conseguimos el comienzo y fin exacto del contenido del METANAME KEYWORDS, serian:

376 <aqui estan las palabras claves> 520

entonces:

obtenemos el contenido con

keywords = Trim(Mid(strFileContents, key1 , (key2 - key1 )))

esto lo utilizo en la busqueda de todos lo meta.................

mid (cadena, inicio, longitud). Devuelve una subcadena de otra, empezando por inicio y de longitud

el inicio de la cadena: 476 , la longitud 520-476


Elvira el asunto creo que radica en entender los parametros de INSTR .......

INSTR (comienzo, cadena 1, cadena 2)

Busca la primera aparición de la cadena 2 dentro de la cadena 1. Los parámetros comienzo y comparación son opcionales. El parámetro comienzo indica a partir de que carácter de la cadena 1 se empieza a buscar la cadena 2. Si se omite, la búsqueda se inicia desde el primer carácter.

Un verdadero placer haber compartido todo esto con tu persona

  #23 (permalink)  
Antiguo 23/02/2003, 00:25
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 23 años, 3 meses
Puntos: 5


Un aplauso!!!

__________________
Manoloweb
  #24 (permalink)  
Antiguo 23/02/2003, 06:57
Avatar de Ellyza  
Fecha de Ingreso: agosto-2002
Ubicación: España
Mensajes: 176
Antigüedad: 22 años, 8 meses
Puntos: 0
Queridos maestros, un saludo y darles de nuevo las gracias por aportar sus conocimientos en este humilde post.
Aquí les dejo un link para que puedan ver un artículo de cómo construir un spider en asp. Yo, como una aficoinada no puedo sacarle partido pero ustedes eguro que sí.
Espero que si alguien saca provecho de este artículo siga compartiéndolo con todos.
UN saludo y gracias de nuevo a todos los participantes.
  #25 (permalink)  
Antiguo 24/02/2003, 02:01
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 23 años, 6 meses
Puntos: 5
RakoVky......

Muchas gracias por tu explicación.... ya sé que buscando en un manual las funciones esas comprendería el significado de esas instrucciones... pero lo que hace la pereza, la falta de tiempo y no tener internet nada mas que en el trabajo juntas.

Un beso
  #26 (permalink)  
Antiguo 28/02/2003, 13:53
 
Fecha de Ingreso: agosto-2002
Mensajes: 139
Antigüedad: 22 años, 8 meses
Puntos: 0
reflote

Hoy he posteado un mensaje que pregunatva algo parecido a este, un usuario me ha indicado el enlace con este y me interesa mucho el tema.

A ver si ahora alguien sabe como hacer un script que lea páginas y busque palabras que contengan una determinada cadena con ASP.

Por cierto, el enlace no funciona.

Gracias.
  #27 (permalink)  
Antiguo 20/03/2003, 02:28
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 23 años, 6 meses
Puntos: 5
Para el problema de los acentos:

¿Cómo mostrar los acentos cuando se utiliza XMLHTTP?

Un beso
  #28 (permalink)  
Antiguo 26/08/2005, 08:12
Avatar de virla  
Fecha de Ingreso: julio-2002
Ubicación: Rio Gallegos - Santa Cruz
Mensajes: 893
Antigüedad: 22 años, 9 meses
Puntos: 1
bueno aqui tengo algo, pero la verdad es que no lo puedo probar porque me sale un error espero que alguien pueda verlo y pulirlo un poco para ver si funciona o no
http://sourceforge.net/project/showf...ease_id=343012
__________________
---->Sin ayuda no se llega a ningun lado<----
Virla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:44.