TS: SR-Nachrichten Excerpt, Grabbellösung

Beitrag lesen

Hi glupto,

ich war Dir noch meine Version schuldig geblieben. Gestern habe ich es nicht mehr geschafft, musste draußen noch 'was erledigen. Die Sonne schien...

Hier jedenfalls erst einmal ein funtkionierendes Gestrüpp:

<?php 

header('Content-Type: text/html; CharSet="utf-8">');
$_errors = array();

#==============================================================================
function handleError($errno, $errstr, $errfile, $errline, array $errcontext) 
{
	global $_errors;

	$_errors[] = array('errno' => $errno, 'errstr' => $errstr, 
		'errfile' => $errfile, 'errline' => $errline); # , 'context' => $errcontext); 
}

#==============================================================================
function get_links($node = NULL)
{
	if ($node === NULL) return false;
	$_links = array();
	
	$__linklist = $node->getElementsByTagName('a');

	## Liste der Links durcharbeiten
	if ($__linklist->length > 0)
	{	
		foreach ($__linklist as $key => $__link)
		{
			## falls Attribute vorhanden sind
			if ($__link->hasAttribute('href'))
			{	
				$_links[$key]['href'] = $__link->getAttribute('href'); 
				$_links[$key]['linktext'] = $__link->textContent;
			}	
		}
    }
	return $_links;
} 

#==============================================================================
## php main
#==============================================================================

$scheme = 'http://';
$domain = 'www.sr-online.de';
$url = $scheme . $domain . '/sronline/nachrichten/hoerfunknachrichten/hoerfunknachrichten_aktuell100.html';

$page = file_get_contents($url);
$meta = '<?xml encoding="UTF-8" ?'.'>' . "\r\n";  ## Das reicht der DOMDocument-Class jetzt aber!

	$dom = new DOMDocument('1.0', 'utf-8');
	$dom->encoding = 'utf-8';
	$dom->validateOnParse = true;
	$dom->strictErrorChecking = true ;

	$dom->preserveWhiteSpace = true;

	set_error_handler('handleError', E_WARNING);
	$dom->loadHTML($meta . $page);
	restore_error_handler();

	## 	hier wird der Hauptcontainer referenziert
	$node = $dom->getElementById('mitte_text');

	$_links = get_links($node);

	foreach ($_links as $key => $link)
	{
		$container = file_get_contents($scheme.$domain.$link['href']);
		set_error_handler('handleError', E_WARNING);		
		$dom->loadHTML($meta . $container);
		restore_error_handler();		
		$node = $dom->getElementById('mitte_text');
                
                ## XPath für die Node feststellen
		$nodexpath = $node->getNodePath();
		
		$xpath = new DOMXpath($dom);

		$elements = $xpath->query($nodexpath .'/h1');	
		if ($elements->length > 0 ) $_links[$key]['heading_1'] = $elements->item(0)->textContent;		

		## SR benutzt leid3r manchmal H1 und manchmal H2 an dieser Stelle
		$elements = $xpath->query($nodexpath .'/div[1]/h1');	
		if ($elements->length > 0 ) $_links[$key]['heading_2'] = $elements->item(0)->textContent;		

		$elements = $xpath->query($nodexpath .'/div[1]/h2');	
   		if ($elements->length > 0 ) $_links[$key]['heading_2'] = $elements->item(0)->textContent;		
		
		$elements = $xpath->query($nodexpath .'/div[2]/p');	
		if ($elements->length > 0 ) $_links[$key]['teaser'] = $elements->item(0)->textContent;
	}

###################################################################################################	
## HTML Out
###################################################################################################		
?>
<?php echo $meta; ?>
<!DOCTYPE HTML>
<html lang="de">

<head>
	<title>SR-Online</title>
</head>
<body>

<pre>	
<?php 
	echo htmlspecialchars(print_r($_links, 1)); 
?>
</pre>	
</body>
</html>

Grüße
TS

0 139

htmlentities "bereinigen"

glupto
  • php
  1. 0
    dedlfix
  2. 1
    TS
    1. 0
      glupto
      1. 0
        Auge
        1. 0

          Korrektur meines vorherigen Postings

          Auge
          1. 0
            glutpo
            1. 1
              Der Martin
              1. 0
                glutpo
                1. 0
                  Der Martin
                  1. 0
                    glutpo
                    1. 0
                      Der Martin
                      1. 0
                        glutpo
                        1. 0
                          Der Martin
                        2. 0

                          meta-charset - Angabe war nicht innerhalb der ersten 1024 Bytes

                          TS
                          1. 0
                            dedlfix
                            1. 0

                              Fakten, Fakten, Fakten

                              TS
                              • meinung
                              • php
                  2. 0
                    Gunnar Bittersmann
            2. 0
              Auge
              • html
              • php
              1. 0
                glutpo
                1. 0
                  Camping_RIDER
                  1. 0
                    Gunnar Bittersmann
                    1. 0
                      Camping_RIDER
                    2. 0

                      Meta-Angabe im File unerheblich?

                      TS
                    3. 0

                      Offenheit für Fehlerquellen

                      Camping_RIDER
                      • html
                      • menschelei
                      • php
                  2. 0
                    glutpo
                    1. 0
                      Matthias Apsel
                      1. 0
                        Gunnar Bittersmann
                        1. 0
                          Tabellenkalk
                      2. 0
                        Tabellenkalk
                2. 1
                  Auge
                  1. 0
                    dedlfix
                    1. 0

                      Aha, dann weiter im Text.

                      Auge
                      1. 0
                        Gunnar Bittersmann
                        • html
                        • sprache
                        1. 0
                          Auge
                        2. 0
                          Gunnar Bittersmann
                      2. 0
                        dedlfix
                        1. 0

                          Danke erstmal an alle,...

                          glupto
                          1. 0
                            dedlfix
                    2. 0
                      TS
                  2. 0
                    glupto
                    1. 0
                      dedlfix
                    2. 0
                      woodfighter
                      1. 0

                        dein Impressum

                        woodfighter
                        • recht
                        1. 0
                          glupto
                          1. 0
                            Der Martin
                      2. 0
                        glupto
                        1. 2
                          dedlfix
                          1. 0
                            glupto
                            1. 0
                              Camping_RIDER
                              1. 0
                                dedlfix
                                1. 0
                                  Camping_RIDER
                                2. 0
                                  glupto
                                  1. 0
                                    Auge
                                    1. 0
                                      glupto
                                      1. 0
                                        Auge
                                    2. 0
                                      glupto
                                      1. 0
                                        Auge
                                        1. 0
                                          glupto
                                          1. 0
                                            Auge
                                            1. 0
                                              glupto
                                              1. 0
                                                Auge
                                                • php
                                                1. 0
                                                  glupto
                                                  1. 0
                                                    TS
                                                    1. 0

                                                      DOMDocument: Fehlerhaftes Parsing und Dekodierung, [gelöst]

                                                      TS
                                                      1. 0
                                                        glupto
                                                        1. 0

                                                          DOMDocument: Fehlerhafte Dekodierung, Jetzt aber...

                                                          TS
                                                      2. 0
                                                        dedlfix
                                                    2. 0
                                                      glupto
                                                      1. 0

                                                        Bitte ändert doch den Betreff immer passend ab

                                                        TS
                                                        • meinung
                                                        • php
                                                        1. 0
                                                          dedlfix
                                                          1. 0

                                                            Ätsch, war trotzdem falsch. Aber nun gibts Workaround:

                                                            TS
                                                            • php
                                                            1. 0

                                                              Kurzfassung

                                                              TS
                                                              1. 0
                                                                TS
                                                                1. 1
                                                                  TS
                                                                  1. 0
                                                                    dedlfix
                                                                    1. 0
                                                                      TS
                                                            2. 0

                                                              Weiterführende Gedanken zur gefundenen Lösung

                                                              TS
                                                              1. 0
                                                                dedlfix
                                                                1. 0
                                                                  TS
                                                                  1. 0
                                                                    dedlfix
                                                                    1. 0
                                                                      TS
                                                                      1. 0
                                                                        dedlfix
                                                                        1. 0
                                                                          glupto
                                                                          1. 0
                                                                            TS-ohne
                                                                            1. 0
                                                                              glupto
                                                                              1. 0

                                                                                SR-Nachrichten Excerpt

                                                                                TS
                                                                                • html
                                                                                • php
                                                                                1. 0
                                                                                  glupto
                                                                                  1. 0
                                                                                    TS
                                                                                    1. 0
                                                                                      glupto
                                                                                      1. 0
                                                                                        TS
                                                                                        1. 0
                                                                                          glupto
                                                                                          1. 0
                                                                                            Gunnar Bittersmann
                                                                                            • design/layout
                                                                                            1. 0
                                                                                              glupto
                                                                                              1. 0

                                                                                                SR-Nachrichten Excerpt, Grabbellösung

                                                                                                TS
                                                                                                • html
                                                                                                • php
                                                                                                1. 0
                                                                                                  glupto
                                                                                                  1. 0

                                                                                                    SR-Nachrichten Excerpt, Grabbel- und Guck-Lösung

                                                                                                    TS
                                                                                                    1. 0
                                                                                                      glupto
                                                                                                2. 0
                                                                                                  glupto
                                                                                                  1. 0
                                                                                                    TS
                                                                                                    1. 0
                                                                                                      glupto
                                                                                                      1. 0
                                                                                                        Auge
                                                                                                        1. 0
                                                                                                          glupto
                                                                                                          1. 0

                                                                                                            Einen Datengrabber schreiben, wie geht es weiter?

                                                                                                            TS
                                                                                                            1. 0
                                                                                                              glupto
                                                                                                              1. 0
                                                                                                                TS
                                                                                                                1. 0
                                                                                                                  glupto
                                                                                                            2. 0
                                                                                                              glupto
                                                                                                          2. 0
                                                                                                            Auge
                                                                                                            • php
                                                                                                            1. 0
                                                                                                              glupto
                                                                                        2. 0

                                                                                          Völlig offtopic, Frage an TS

                                                                                          Jörg Reinholz
                                                                                          • offtopic
                                                                                          1. 0
                                                                                            Matthias Apsel
                                                                                            • zu diesem forum
                                                                                          2. 0
                                                                                            TS
                                                                                            1. 2
                                                                                              Jörg Reinholz
                                                                                        3. 0
                                                                                          Auge
                                                                                          • https
                                                                                          • php
                                                                                          1. 0
                                                                                            glupto
                                                                                            1. 0
                                                                                              Auge
                                                                                              1. 0
                                                                                                glupto
                                                                                                1. 0
                                                                                                  Auge
                                                                                                2. 0
                                                                                                  Jörg Reinholz
                                                                                                  • https
                                                                                                  • recht
                                                                                          2. 0
                                                                                            TS
                                                                                            1. 0
                                                                                              Auge
                                                                                          3. 0

                                                                                            header('Content-Type: text/html; charset=UTF-8');

                                                                                            TS
                                                                                            1. 0
                                                                                              Auge
                                                                                              • https
                                                                                            2. 0
                                                                                              woodfighter
                                                                                              1. 0
                                                                                                RS
                                                                                                1. 0
                                                                                                  woodfighter
                                              2. 0
                                                dedlfix
                                          2. 0
                                            dedlfix
                                      2. 0
                                        dedlfix
                              2. 0
                                Auge
                                1. 0
                                  Camping_RIDER
                              3. 0
                                glupto
                                1. 0
                                  Camping_RIDER
                                2. 0
                                  Auge
                        2. 0

                          SR-Nachrichten als ISO interpretiert

                          TS
      2. 0
        TS
      3. 0
        Christian Kruse
        1. 0
          glupto