Benötigt auch Kopfloses Chrom -Chrom -PHP und Chromium ausführbar, wenn Sie diese Bibliothek mit Kopf ohne Strohr verwenden möchten (einschließlich von StandArt in Packagist -Version).
$ composer require shamanhead/phpporser
Dies könnte unter Windows, MacOS und Linux funktionieren.
Gehen Sie also auf die offizielle Chrom -Browser -Herunterladenseite und laden Sie sie herunter.
Auspacken Sie nach diesem Schritt das Archiv und bewegen Sie sich an den notwendigen Ort.
Geben Sie dann den Pfad in Ihrem Skript an:
require_once " vendor/autoload.php " ;
use HeadlessChromium Page ;
use ShamanHead PhpPorser App Dom as Dom ;
$ dom = new Dom ();
$ dom -> setHref ( ' file:///home/shamanhead/dev/porser/phpporser-master/test.html ' );
$ dom -> setBrowserPath ( ' PATH_TO_CHROME ' );Wenn Sie alles richtig gemacht haben, würde Parser funktionieren. Wenn Sie in diesem Schritt Fehler auftreten, können Sie sich hier ansehen. Gibt es eine Lösung, um Ihr Problem zu lösen. In anderen Fällen öffnen Sie hier bitte eine neue Ausgabe hier oder auf Kopf ohne Chrom -PHP -Seite.
Lassen Sie uns zunächst versuchen, über die Seite "Computer Scienen" -Anzone zu erhalten:
<?php
require_once " vendor/autoload.php " ;
use ShamanHead PhpPorser App Dom as Dom ;
$ dom = new Dom ();
$ dom -> setHref ( ' https://en.wikipedia.org/wiki/Computer_science ' );
print_r ( $ dom -> tag ( ' h1 ' )-> class ( ' firstHeading ' )-> text ()-> merge ());
?>Es ist funktioniert! Aber wie? Lassen Sie mich erklären:
<?php
require_once " vendor/autoload.php " ;
use ShamanHead PhpPorser App Dom as Dom ;
$ dom = new Dom ();
$ dom -> setHref ( ' href to file ' );
print_r ( $ dom -> tag ( ' h1 ' )-> array ()); //finds by tag name 'h1'
print_r ( $ dom -> id ( ' firstHeading ' )-> array ()); //finds by id name 'firstHeading'
print_r ( $ dom -> class ( ' wrapper__main ' )-> array ()); //finds by class name 'wrapper_main'
print_r ( $ dom -> custom ([ ' name ' , ' button ' ])-> array ()); //finds by 'name' attribute value 'button'
?>Sie können Suchmethoden miteinander kombinieren, um Elemente auf besondere Weise zu finden:
<?php
require_once " vendor/autoload.php " ;
use ShamanHead PhpPorser App Dom as Dom ;
$ dom = new Dom ();
$ dom -> setHref ( ' href to file ' );
print_r ( $ dom -> class ( ' main ' )-> id ( ' firstHeading ' )-> tag ( ' h1 ' )-> array ());
?> <?php
require_once " vendor/autoload.php " ;
use ShamanHead PhpPorser App Dom as Dom ;
$ dom = new Dom ();
$ dom -> setHref ( ' href to file ' );
$ divText = $ dom -> tag ( ' div ' )-> id ( ' someDiv ' )-> text ();
$ divText -> contents (); //Returns all text in array form.
$ divText -> merge ( ' symbol ' ); //Returns all text in string form with 'symbol' separator
//'n' by default.
$ divText -> first (); //Returns first founded text.
$ divText -> last (); //Returns last founded text.
?>