2012-05-15 11 views
5

En mi país, muchos sitios web se censuran y se bloquean, y en su lugar se redirigen a una página determinada. No sé cómo exactamente hacen esto. Pero, ¿es posible determinar mediante programación si un sitio web está bloqueado o no está bloqueado sin cargar todo? La razón por la que quiero hacer esto es usar una API de búsqueda web (tal vez Google) y crear un servicio web que solo brinde resultados que no estén bloqueados.Comprobando la redirección del sitio web, mediante programación

Si ayuda, el contenido de la página que se carga en su lugar es la siguiente:

<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1256"><title>M3-5 
</title></head><body><iframe src="http://10.10.34.34?type=Invalid Site&policy=MainPolicy " style="width: 100%; height: 100%" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" vspace="0" hspace="0"></iframe></body></html> 

entiendo que el servidor que ejecuta el servicio tendría que tener IP de mi país.

Sería mejor si hubiera una forma de hacerlo en PHP o Python.

Agradezco cualquier ayuda o idea.

+4

Si los sitios bloqueados devuelven un 301, quizás podría simplemente hacer una solicitud HEAD y verificar si es un mensaje de estado 301. Si es así, puede inspeccionarlo para ver si contiene el "Sitio inválido". Esto te ahorraría cargar todas las páginas de desbloqueo. Algunos sitios que están desbloqueados también tendrán un 301. – dm03514

+0

Gracias. Bien, revisé algunos sitios bloqueados. La mayoría de ellos devolvió un 301. Uno de ellos devolvió un 302. Pero facebook.com, por ejemplo, no devuelve nada (sí, Facebook está bloqueado aquí) y flickr.com devuelve un 200. ¿Tiene alguna pista de por qué? – Auxiliary

Respuesta

3

Esto debería ser completamente posible tanto en PHP como en Python. Básicamente, desea emitir una solicitud http al sitio en cuestión y luego analizar la respuesta que recibe. Eche un vistazo a PHP's cURL o Python's Pycurl para resolver cómo emitir esas solicitudes http y cómo procesar las respuestas.

Una vez que tenga la respuesta, solo se trata de hacer coincidir el patrón con un patrón confiable para sitios bloqueados. Mi primera suposición es que podría buscar <body><iframe src="http://10.10.34.34?type=Invalid Site dentro de la respuesta, sin embargo, debería verificar más páginas bloqueadas para ver si todas incluyen esa cadena. Puede terminar necesitando ampliar el cheque a una expresión regular específica si, por ejemplo, la IP o el tipo paramétrica de cadena varía de un sitio bloqueado a otro.

Cuestiones relacionadas