2

たとえば、Web ページに次のような ID を持つ div がある場合、php 関数はelse<div id='header'> Smile </div>を返す必要があります。または、Web ページに次のようなクラスを持つ div がある場合は、php 関数値またはを返します。 私はこれを行うための適切な考えを持っていないので、次のようなことを試しました:truefalse <div class='header'> Smile </div>truefalse

<?php    
include("parser.php"); //using simple html dom parser
$datamain = file_get_html('http://stackoverflow.com/questions/14343073/how-to-count-an-array-content-and-assign-number-position-with-php'); //get the content
$classHeader = $datamain->find('.header', 0); //check for div which has class .header
if(!empty($classHeader)){ //now delete the div which has .header class if it is not empty
    foreach ($datamain->find('.classHeader') as $cclass){
    $datamain = str_replace($cclass,"", $datamain);
    }
}
?>

しかし、それはこのエラーを出力しました:
Fatal error: Call to a member function find() on a non-object in C:\xampp\htdocs\kitten-girl\serp.php on line 4
それで、cssセレクターの存在を確認し、存在する場合はそれで何かをする方法は?
解像度: http://simplehtmldom.sourceforge.net

4

2 に答える 2

0

このような外部ページでのスクレイピングには、cURL、strpos、および substr を使用します。ページの実際のコンテンツは必要なく、ページに何かがあるかどうかを確認するだけなので、必要なのは cURL と strpos だけです。したがって、その URL からプルしている場合は、次のようになります。

<?php

function checkPage($url=''){
    if(!$url){
        return false;
    }
    $soap_do = curl_init(); 
   curl_setopt($soap_do, CURLOPT_URL, $url );   
   curl_setopt($soap_do, CURLOPT_CONNECTTIMEOUT, 15); 
   curl_setopt($soap_do, CURLOPT_TIMEOUT, 15); 
   curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true );
   $result = curl_exec($soap_do);
   $data = htmlentities($result);
   //check for <div id="header" or <div class="header" or <div id='header'> or <div class='header'>
   if(strpos($data,"&lt;div id=&quot;header&quot;"&gt;) || strpos($data,"&lt;div class=&quot;header&quot;&gt;") || 
   strpos($data,"&lt;div id=&lsquo;header&lsquo;"&gt;) || strpos($data,"&lt;div class=&lsquo;header&lsquo;&gt;")){
       return true;
   }

       return false;

}//end function

$url = "http://stackoverflow.com/questions/14343073/how-to-count-an-array-content-and-assign-number-position-with-php";

if(checkPage($url)){
    //do something on success
}else{
    //do something on failure
}
于 2013-05-16T14:08:34.537 に答える