-4

http://www.frosher.com/schools/acme-academy-burdwan/contact

これは、私がフォルダに保存したページのリンクで、学校のすべての連絡先情報とともにアドレスを取得します。また、Google マップ ブロックの前に、彼らの電子メールと Web リンクも見ました。メールの値を取得したい。

この html ページをスクレイピング フォルダーに保存するだけです。これが私のコードです:

<?php 
include('simple_html_dom.php');//Required
$i = 0; 
$dir = 'scraping/';//folder name in which your html file
if ($handle = opendir($dir)) {
    while (($file = readdir($handle)) !== false){
        if (!in_array($file, array('.', '..')) && !is_dir($dir.$file)) 
            $i++;
    }
}
$filenames = array();
foreach(glob('scraping/*.*') as $filename){
    $filenames[] = $filename;//get all files name which are in my folder
}
$i = 1;
foreach($filenames as $val){
    $doc = new DomDocument();
    $doc  = file_get_html($val);
    $ret = $doc->find('div[class=span5]'); 
    foreach($doc->find('.span7') as $element){
        $contact = $element->plaintext;     
        if (preg_match("/\bEmail\b/i", $contact, $match)) {
            $n = 0; // i have used $n for counting because in span7 div their are two a tag so i need only first time value.
            foreach($doc->find('.span7 a') as $element){
                if($n == 0){                    
                    $email = $element; 
                    $n = $n+1;
                }                   
            }           
        }
        else{
            $email = 'Null';
        }           
        echo $email;
        
    }       
    echo '<br/>';
}
?>

これはphpスクリプトコードで、ファイル名を付けて保存し、phpファイルとスクレイピングフォルダーの両方を共通のフォルダーに配置します.leoはphpファイルが配置されたフォルダーであり、スクレイピングフォルダーもその中にあります.

php ファイルを実行すると、出力が表示されます。そうでない場合は、leo フォルダーに「simple_html_dom.php」も含める必要があります。

4

1 に答える 1

0

タグ全体を取得している場合は、次のことを試してください



foreach($doc->find('.span7 a') as $element){    

    $email = $element; 
    $email = strip_tags($email);
    //now you can check email
}
于 2013-08-26T04:50:03.733 に答える