php curl méthode d'obtention personnalisée pour explorer les pages Web
Supposons que nous utilisions la méthode get pour demander une page Web, après avoir obtenu le contenu de la page Web, nous pouvons faire correspondre le contenu correspondant.
Nous pouvons utiliser curl pour encapsuler une fonction, en supposant que le nom de la fonction est get. En transmettant l'URL, vous pouvez demander la page Web spécifiée et renvoyer le code HTML de la page Web spécifiée. Le code est le suivant?:
function get($url) { //初使化curl $ch = curl_init(); //請求的url,由形參傳入 curl_setopt($ch, CURLOPT_URL, $url); //將得到的數(shù)據(jù)返回 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //不處理頭信息 curl_setopt($ch, CURLOPT_HEADER, 0); //連接超過10秒超時 curl_setopt($ch, CURLOPT_TIMEOUT, 10); //執(zhí)行curl $output = curl_exec($ch); //關(guān)閉資源 curl_close($ch); //返回內(nèi)容 return $output; }
Nous utilisons maintenant la méthode get que nous avons écrite pour demander une liste à NetEase et récupérer le titre et l'url.
Nous pouvons d'abord transmettre une URL en utilisant la méthode get. Récupérez le html de la page web correspondant à cette URL.
L'adresse du site Web est la page de liste d'actualités du New Media Observation Network?: http://www.xmtnews.com/events.
Collectez la zone rouge?:
1 Obtenez le html de la zone rouge
Cette plage commence par le code HTML suivant?:
<section class="ov">
se termine par le code suivant?:
<div class="hr-10"></div>
Utilisez preg_match pour écrire une expression régulière et faites-la correspondre pour obtenir HTML rouge pour les plages. Attribuez le code HTML correspondant à la variable $area. L'expression régulière correspondante de
est la suivante?:
<section class="ov">(.*?)<div class="hr-10"><\/div>/mis'
2. Faites correspondre le titre et l'URL du titre dans la zone rouge
Nous avons constaté que tous les titres sont dans la balise <h3> Nous utilisons preg_match_all pour écrire une expression régulière.
preg_match_all('/<h3><a href="(.*?)" title=".*?" class="headers" target="_blank">(.*?)<\/a><\/h3>/mis', $area, $find);
Mettez le contenu correspondant à l'URL et au contenu dans $find Imprimez le tableau $find pour voir les résultats correspondants.
Si nécessaire, vous pouvez également lire et afficher le titre de chaque ligne ainsi que l'URL de chaque ligne en boucle.
Toutes les démonstrations de code sont les suivantes?:
<?php $content = get('http://www.xmtnews.com/events'); preg_match('/<section class="ov">(.*?)<div class="hr-10"><\/div>/mis', $content, $match); //將正則匹配到的內(nèi)容賦值給$area $area = $match[1]; preg_match_all('/<h3><a href="(.*?)" title=".*?" class="headers" target="_blank">(.*?)<\/a><\/h3>/', $area, $find); var_dump($find); function get($url) { //初使化curl $ch = curl_init(); //請求的url,由形參傳入 curl_setopt($ch, CURLOPT_URL, $url); //將得到的數(shù)據(jù)返回 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //不處理頭信息 curl_setopt($ch, CURLOPT_HEADER, 0); //連接超過10秒超時 curl_setopt($ch, CURLOPT_TIMEOUT, 10); //執(zhí)行curl $output = curl_exec($ch); //關(guān)閉資源 curl_close($ch); //返回內(nèi)容 return $output; } ?>