2010-07-30 20 views
5

por ejemplo, en una página web se proporcionan muchos enlaces.cómo hacer clic en un enlace usando cURL.?

forward backward 

tome este dos como dos enlaces. Primero quiero cargar esta página, que contiene estos enlaces y hacer clic en cualquiera de esos enlaces. NOTA [no sé la URL que se va a cargar después de hacer clic en ella, ya que cambia aleatoriamente]

Respuesta

3

Tendría que analizar el código HTML que devolvió cUrl y encontrar los enlaces, y luego extraerlos a través de una nueva solicitud de cUrl.

+0

me puede privide con un ejemplo por favor :) –

3

Esta es una publicación anterior, pero para cualquiera que busque una respuesta, tuve un problema similar y pude resolverlo. Usé PHP con cUrl.

El código para seguir un enlace a través de cUrl es muy simple.

// Create a user agent so websites don't block you 
$userAgent = 'Googlebot/2.1 (http://www.google.bot.com/bot.html)'; 

// Create the initial link you want. 
$target_url = "http://www.example.com/somepage"; 

// Initialize curl and following options 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent); 
curl_setopt($ch, CURLOPT_URL,$target_url); 
curl_setopt($ch, CURLOPT_FAILONERROR, true); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($ch, CURLOPT_AUTOREFERER, true); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); 
curl_setopt($ch, CURLOPT_TIMEOUT, 10); 


// Grab the html from the page 
$html = curl_exec($ch); 

// Error handling 
if(!$html){ 
    handle error if page was not reachable, etc 
    exit(); 
} 


// Create a new DOM Document to handle scraping 
$dom = new DOMDocument(); 
@$dom->loadHTML($html); 


// get your element, you can do this numerous ways like getting by tag, id or using a DOMXPath object 
// This example gets elements with id forward-link which might be a div or ul or li, etc 
// It then gets all the a tags (links) within all those divs, uls, etc 
// Then it takes the first link in the array of links and then grabs the href from the link 
$search = $dom->getElementById('forward-link'); 
$forwardlink = $search->getElementsByTagName('a'); 
$forwardlink = $forwardlink->item(0); 
$forwardlink = $getNamedItem('href'); 
$href = $forwardlink->textContent; 


// Now that you have the link you want to follow/click to 
// Set the target_url for the cUrl to the new url 
curl_setopt($ch, CURLOPT_URL, $target_url); 

$html = curl_exec($ch); 


// do what you want with your new link! 

Este es un excelente tutorial para seguir por el camino: php curl tutorial

+0

Brilliant! Gracias. – adamj

Cuestiones relacionadas