programmieren:php:programme:gelbe_seiten
Gelbe Seiten Adressen auslesen
Dieses Script ließt aus Gelbe Seiten die Adressen aus und erstellt eine CSV Datei.
Dazu erst mal eine normale Einschränkung bei Gelbe Seiten machen (Suche z.B. Friseure im Umkreis von 50km um die PLZ 99999)
Dann die von Gelbe Seiten erstellte URL kopieren und hier einfügen.
Script laufen lassen - Fertig.
- gelbeseiten.php
<?php echo "Liest bei Gelbe Seiten alle Adressen für Friseursalons ein.<br> "; echo "Z.B. vom Link <a href='https://www.gelbeseiten.de/friseursalons/buxtehude,,,,,umkreis-50000'>https://www.gelbeseiten.de/friseursalons/butehude,,,,,umkreis-50000</a><br>"; echo "und erstellt damit eine Datei adressen.csv<br><hr>"; $umkreis = 10; //Umkreis = 10km, 20km, 30km, 40km, 50km /* ------------------------------------ ab hier nichts mehr ändern ----------------------------------------------- */ // Prog INI ini_set("zlib.output_compression", "Off"); ini_set("output_buffering", "0"); // Variablen definieren $csv_inhalt = ""; $z = 1; $umkreis = $umkreis * 1000; // Menge der Adressen ermitteln $source_url = "https://www.gelbeseiten.de/friseursalons/buxtehude,,,,,umkreis-$umkreis/"; $html_inhalt = file_get_contents( $source_url ); $adr_menge = teilstr($html_inhalt,'gs_titel_anzahlTreffer">',"</span>",0,$ende); echo "Zu erzeugende Adressen: ".$adr_menge."<br>"; echo "Aufgerufene Links:<br>"; ob_flush(); // Adressen abrufen for ($a = 1; $a <= ceil($adr_menge/15); $a++) { $source_url = "https://www.gelbeseiten.de/friseursalons/waechtersbach,,,,,umkreis-$umkreis/s".$a; if( false == ($html_inhalt = file_get_contents( $source_url ))) { // echo "Quelle konnte nicht gelesen werden<br>"; }else{ // echo "Quelle wurde eingelesen<br>"; } echo $source_url."<br>"; $merke_ende = 0; for ($i = 1; $i <= 15; $i++) { $block = teilstr($html_inhalt,"<article","</article",$merke_ende,$ende); $merke_ende = $ende; $csv_inhalt .= $z.";"; $csv_inhalt .= teilstr($block,'<span itemprop="name">','</span>').";"; $csv_inhalt .= str_replace(" ","", teilstr($block,'<span itemprop="streetAddress">','</span>')).";"; $csv_inhalt .= teilstr($block,'<span itemprop="postalCode">','</span>').";"; $csv_inhalt .= teilstr($block,'<span itemprop="addressLocality">','</span>')."\r\n"; $z++; } // echo "<br>Ende".$merke_ende; } echo "Adressen:<br>"; echo $csv_inhalt; //Daten als CSV speichern $datei = fopen("adressen.csv","w+"); fwrite($datei, $csv_inhalt); fclose($datei); // ---------------------------------------------------------------------------------------------------------------------- // gibt String zurück welcher zwischen zwei Strings liegt function teilstr($inhalt,$sbg_von, $sbg_bis, $anfang, &$ende) { if( !isset($anfang) ) $anfang = 0; if( !isset($ende) ) $ende = 0; if ($start_pos = strpos($inhalt,$sbg_von,$anfang)){ $start_pos += strlen($sbg_von); // echo "Start ".$start_pos."<br>"; if ($end_pos = strpos($inhalt, $sbg_bis, $start_pos)){ // echo "Ende ".$end_pos."<br>"; $ende = $end_pos; $erg_link = substr($inhalt,$start_pos,$end_pos-$start_pos); return $erg_link; } else { return false; } } else { return false; } } ?>
programmieren:php:programme (2457 views) · Zuletzt geändert: 04/10/2020 15:57 von conny