2010-07-30 15 views
5

ad esempio, in una pagina Web vengono forniti molti collegamenti.come fare clic su un collegamento utilizzando cURL.?

forward backward 

prendere questo due come due collegamenti. voglio prima caricare questa pagina, che contiene questi collegamenti e fare clic su uno di questi collegamenti. NOTA [non conosco l'URL che verrà caricato dopo aver fatto clic su di esso come cambia casualmente]

risposta

3

Dovresti analizzare il codice HTML restituito da cUrl e trovare i collegamenti, quindi trascinarli attraverso una nuova richiesta cUrl.

+0

mi puoi privide con un esempio si prega :) –

3

Questo è un vecchio post ma per chiunque cerchi una risposta, ho avuto un problema simile ed è stato in grado di risolverlo. Ho usato PHP con cUrl.

Il codice per seguire un collegamento tramite cUrl è molto semplice.

// 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! 

Questo è un ottimo tutorial per seguire l'altro: php curl tutorial

+0

Brilliant! Grazie. – adamj

Problemi correlati