javascript - sencillo - busqueda inteligente php mysql
Cómo hacer un bot con PHP para iniciar sesión y hacer cosas en un sitio web (1)
Lo que intento hacer es crear un robot que inicie sesión en un sitio usando mi cuenta y trabaje de forma automática (por supuesto, trabajo legítimo).
Por ejemplo, puede haber una publicación en un foro con miles de comentarios separados en cientos de páginas. La publicación solo puede ser vista por usuarios registrados. Deseo encontrar comentarios de un usuario específico allí y quiero que un bot de PHP inicie sesión con mi cuenta, lea cada página de comentarios uno por uno y extraiga los comentarios de ese usuario específico y me los muestre.
Esto fue solo un ejemplo, por supuesto. Puedo hacer la extracción y el análisis, pero parece que no puedo hacer que el bot inicie sesión y siga adelante. Solo soy un principiante en PHP, he intentado lo siguiente:
Utilicé mi propio formulario para pasar los datos de la publicación a la página de inicio de sesión del sitio, pero no funcionó porque no dejaba de indicar que el remitente no era válido.
Inicié sesión manualmente y luego abrí mi script en una nueva pestaña, pero tampoco funcionó y le pedí al bot que iniciara sesión de nuevo.
Entonces, ¿puedes darme una idea de cómo hacer esto? Básicamente debe ir a la página de inicio de sesión, escribir de alguna manera el nombre de usuario y la contraseña, iniciar sesión, ir a una página específica y hacer cosas.
Por cierto, ¿se puede hacer esto con JavaScript también?
Gracias.
Necesita php_curl para autenticarse y luego, una vez que obtiene la sesión, puede hacer la extracción. Algo como esto:
$host = curl_init($url);
curl_setopt($host, CURLOPT_HTTPHEADER, array(''Content-Type: application/xml'', $additionalHeaders));
curl_setopt($host, CURLOPT_HEADER, 1);
curl_setopt($host, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($host, CURLOPT_TIMEOUT, 30);
curl_setopt($host, CURLOPT_POST, 1);
curl_setopt($host, CURLOPT_POSTFIELDS, $payloadName);
curl_setopt($host, CURLOPT_RETURNTRANSFER, TRUE);
$return = curl_exec($host);
curl_close($host);