marcador - title html ejemplos
Etiqueta de raspado web (9)
- ~ 5 segundos de retraso por dominio. Puede ajustar su demora en función de la rapidez con la que el sitio web devuelve contenido.
- user-agent configurado para el navegador común para que el sitio web se muestre de forma normal
- referrer establecido en donde se vinculó la página desde
- cuánto tiempo caché depende del sitio web. Típicamente 1 mes.
- Solo descargo archivos de texto e imagen
- "Es más fácil pedir perdón que obtener un permiso"
- Utilizo bibliotecas de Python existentes como lxml y algunas desarrollé
- el raspado de la web implica rastreadores / arañas, por lo que sí, robots.txt es relevante
- siempre comprimir
Hago un montón de web scraping, y he descubierto que la mayoría de los sitios web no siguen el comportamiento sospechoso de IP.
Si le preocupa, en lugar de descargar contenido directamente desde su sitio web objetivo, puede usar Google Cache, Archive.org, etc. O puede usar proxies.
Estoy pensando en escribir una aplicación web simple para extraer información de un sitio web que no parece prohibir específicamente esto.
He revisado otras alternativas (por ejemplo, RSS, servicio web) para obtener esta información, pero no hay ninguna disponible en esta etapa.
A pesar de esto, también he desarrollado / mantenido algunos sitios web y me doy cuenta de que si el web scraping se hace ingenua / codiciosamente puede ralentizar las cosas para otros usuarios y, en general, convertirse en una molestia.
Entonces, qué etiqueta está involucrada en términos de:
- Número de solicitudes por segundo / minuto / hora.
- Contenido del agente de usuario HTTP.
- Contenido del Remitente HTTP.
- Configuración de caché de HTTP
- Tamaño del búfer para archivos / recursos más grandes.
- Legalidades y problemas de licencia.
- Buenas herramientas o enfoques de diseño para usar.
- Robots.txt, ¿esto es relevante para raspar web o solo crawlers / spiders?
- Compresión como GZip en las solicitudes.
Actualizar
Encontré esta pregunta relevante en Meta: Etiqueta de Screen Scaping StackOverflow . La respuesta de Jeff Atwood tiene algunas recomendaciones útiles.
Otras preguntas relacionadas con StackOverflow:
Conforme a la solicitud robot.txt del sitio, esta es probablemente una de las mejores y más éticas formas de llegar a un acuerdo sin hablar con nadie en el sitio.
Identifíquese adecuadamente en el encabezado UserAgent. Al hacer esto, el sitio puede ver quién es usted y restringir / permitir ciertas áreas de su sitio explícitamente. Por ejemplo, mira a los agentes de usuario del tipo grande, Google se enumera a continuación, y diseña uno similar que tenga una página que describa quién eres y cómo informar a tus bots sobre cómo gatear.
Cadena de agente de usuario de Google: Googlebot / 1.0 ([email protected] http://googlebot.com/ )
Utilice la compresión gzip / deflate si el sitio admite, esto le ahorra tiempo y el ancho de banda del sitio.
Debería estar bien desde el punto de vista legal (aunque yo no soy abogado ni experto legal) si sigue sus términos de servicio de robots.txt Y.
Al final, sin embargo, creo que el mejor consejo fue de runrunraygun, ya que es un sitio solitario. Contactar al administrador y ver lo que sería aceptable y respetar sus deseos lo llevará lejos.
Esto realmente depende de lo que estás raspando, y de cuánto estás raspando. Por ejemplo, tuve que escribir un raspador hace una semana para rastrear varios cientos de páginas. Para ser generoso, puse un segundo de espera después de cada página. Tomó algunos minutos recuperar los datos, pero estoy seguro de que el propietario del sitio apreciaría cualquier descuido que pueda abandonar en el proceso.
Para cualquier persona interesada en el web scraping, recomiendo leer este libro (también discute la etiqueta, así que sentí que es relevante para la publicación):
Según mi experiencia en raspado, si realiza solicitudes constantemente, podría tener su IP en la lista negra. Si este es el caso, puede buscar un proxy rotativo como proxies de tormenta . El sitio realmente no podrá distinguir si está raspando / arrastrando, por lo que es recomendable que utilice robots.txt.
En cuanto a la legalidad, por lo que he leído es un poco un área gris. Por lo general, si usted se retira como invitado (y no como usuario registrado), no se le retendrá ningún término o condición que pueda tener verborrea contra las solicitudes automatizadas.
Siempre que tenga un retraso de tiempo significativo entre sus solicitudes, siga el archivo robots.txt y tome medidas para evitar que su IP sea incluida en la lista negra, su raspador debería sobrevivir.
Siempre es mejor ir con un servicio dedicado de web scraping si está adquiriendo datos para su negocio. Dado que el raspado web es un proceso de tecnología intensiva, hacerlo internamente puede drenar fácilmente sus recursos y frenar el crecimiento de la empresa.
Sugeriría enviar un correo electrónico al webmaster, decirles que está escribiendo un script no malicioso, etc. y preguntarles con qué están de acuerdo con su éxito y con qué frecuencia.
ejecutamos un rastreador de dominios que recoge documentos PDF / Word, etc. de dominios amigables y lo máximo que hemos solicitado es un intervalo de 5 segundos entre las solicitudes y solo se ejecuta de noche.
También agregaría que incluso si Python tiene un bloqueo de intérprete global, por ejemplo, GIL. Si está solicitando datos y la velocidad es fundamental, el módulo de import multithreading
puede ser muy útil ya que la solicitud toma tiempo para completarse. Al mismo tiempo, si está solicitando una gran cantidad de datos (haciendo una gran cantidad de solicitudes), es posible que se le bloquee y su conexión se bloquee. No hay una manera de decir el umbral a menos que haga pruebas.
Una adición que he encontrado puede marcar una gran diferencia en el número de solicitudes: mire la estructura del sitio. Si la dinámica del sitio es probable que haya una serie de ubicaciones donde se pueden encontrar los datos que desea. Algunas veces en una página. En la categoría de WP y las páginas de archivo a menudo tienen (hasta) todo el contenido de los artículos, todo en una sola ubicación. Tal vez esos son casos extremos, pero termino raspando datos con cierta regularidad y he descubierto que un notable porcentaje de las veces hay una solución alternativa.
TLDR; hurgando un poco a veces puede guardar cientos de solicitudes.
Además, he tenido webmasters solo me envían la información que estoy buscando para raspar. Eso suponiendo que te hayas contactado y estés trabajando para alcanzar los mismos objetivos (como los no competidores).
robots.txt
es relevante: míralo para tener una idea de cuál es la actitud del sitio para los lectores no humanos. Mostrar un poco de conocimiento de sus contenidos proporcionará cierto consuelo al webadmin cuando les envíe un correo electrónico que se encargará de respetar el sitio cuando raspe.