2017-06-14 21 views
-1

Ich verwende dieses hervorragende Plugin, um einige Inhalte von einer bestimmten Website zu scrape: http://simplehtmldom.sourceforge.net/manual.htm.Korrekte Syntax für Scraping-Plugin

Ein Beispiel von dem, was ich versuche durch zu kratzen.

<section class="details"> 

     <div class="address"> 
      <div class="zip-code-country"> 
       <span>USA</span> 
      </div> 
     </div> 
      <div class="phone"> 
      <a href="tel:+1234567890">(123)456-7890</a> 
      </div> 
      <ul> 
       <li><a href="mailto:[email protected]">Email</a></li> 
      </ul> 
     </section> 

Der relevante Teil meines Code ist wie folgt:.

foreach($html->find('section.details') as $part2) { 

    $item2['zip']  = $part2->find('div.zip-code-country span', 0)->plaintext; //works perfectly 
    $item2['phone']  = $part2->find('div.phone a', 0)->plaintext; //works perfectly 
    $item2['email']  = $part2->find('ul li a[href]', 0)->plaintext; //issue is here 
    $pieces2[] = $item2; 
} 

Wenn ich versuche, email zu bekommen, es gibt den Ankertext (zB „E-Mail) Was ich will, ist für sie return "[email protected]"

Gedanken darüber, wie richtig diese Syntax erhalten

+2

Verschrottung Kontaktdaten von einer Website sieht scuzzy – rtfm

+0

@rtfm Es gibt einen sehr einfachen und zulässigen Grund dafür, dies als eine schnelle MVP ohne eine vollständige API von der Website, die wir scraping zu integrieren. – jonmrich

Antwort

1

Sie wollen würde, tun.?

$email= $part2->find('ul li a[href]', 0)->href; 
$item2['email'] =str_replace('mailto:', '', $email); 
+0

Danke. Genau das, was ich brauchte. – jonmrich

Verwandte Themen