App-Icon: src von Google Play auslesen

daveG

Grünschnabel
#1
Hallo,

Ich möchte das src, also den Pfad zu einem App-Icon von Google Play auslesen, sowie den Namen der App.

Name auslesen ist schon abgehakt, mir fehlt noch der Pfad zu dem App-Icon. Beide sollen in einem Array landen.

Bestehender Code:

PHP:
$url="https://play.google.com/store/apps/details?id=com.pixel.gun3d&hl=de";

$html = file_get_contents($url);

preg_match_all("'<div class=\"id-app-title\" \b[^>]*>(.*?)</div>'si", $html, $match);

print_r($match[1]);
   
?>
Die Sache mit den regulären ausdrücken ist gar nicht so einfach. Ich danke euch für eure Hilfe.
 

merzi86

Erfahrenes Mitglied
#2
Ich würde an deiner Stelle das Auswerten von HTML-Code nicht mittels Regular Expressions betreiben, sondern mittels Dom-Document.

PHP:
$dom = new DomDocument();
   $dom->load($filePath);
$finder = new DomXPath($dom);
$classname="cover-image";
$nodes = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' $classname ')]");

printf( "ImagePath: %s<br />", $nodes ->item(0) ->getAttribute( 'src') );

$classname="id-app-title";
$nodes = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' $classname ')]");

printf( "App Name: %s<br />", $nodes[0] ->nodeValue );
Code nicht getestet, kann also noch Fehler enthalten.
 

daveG

Grünschnabel
#3
Hi,

Ich danke dir zunächst.
Habe die ganze Sache mal ausprobiert. Funktioniert.

Zeile 2 habe ich geändert: Von load zu loadHTML, dann hat er alle Daten ausgespuckt + einige Fehler:

PHP:
Warning: DOMDocument::loadHTML(): htmlParseEntityRef: expecting ';' in Entity, line: 121 in C:\xampp\htdocs\umbau_db.php on line 41

Warning: DOMDocument::loadHTML(): htmlParseEntityRef: no name in Entity, line: 121 in C:\xampp\htdocs\umbau_db.php on line 41

Warning: DOMDocument::loadHTML(): Tag jsl invalid in Entity, line: 122 in C:\xampp\htdocs\umbau_db.php on line 41

Warning: DOMDocument::loadHTML(): Unexpected end tag : p in Entity, line: 122 in C:\xampp\htdocs\umbau_db.php on line 41
PHP:
$url="https://play.google.com/store/apps/details?id=com.pixel.gun3d&hl=de";
$html = file_get_contents($url);

$dom = new DomDocument();
$dom->loadHTML($html);
$finder = new DomXPath($dom);

$classname="cover-image";
$nodes = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' $classname ')]");
printf( "ImagePath: %s<br />", $nodes ->item(0) ->getAttribute( 'src') );

$classname="id-app-title";
$nodes = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' $classname ')]");
printf( "App Name: %s<br />", $nodes[0] ->nodeValue );