Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hxseven/htmlSQL
htmlSQL is a experimental PHP library which allows you to access HTML values by an SQL like syntax.
https://github.com/hxseven/htmlSQL
php scraping snoopy
Last synced: 13 days ago
JSON representation
htmlSQL is a experimental PHP library which allows you to access HTML values by an SQL like syntax.
- Host: GitHub
- URL: https://github.com/hxseven/htmlSQL
- Owner: hxseven
- Archived: true
- Created: 2012-02-09T09:28:36.000Z (almost 13 years ago)
- Default Branch: master
- Last Pushed: 2021-01-28T02:46:10.000Z (almost 4 years ago)
- Last Synced: 2024-08-02T11:24:54.947Z (4 months ago)
- Topics: php, scraping, snoopy
- Language: PHP
- Homepage:
- Size: 27.3 KB
- Stars: 126
- Watchers: 21
- Forks: 89
- Open Issues: 0
-
Metadata Files:
- Readme: README-german.md
Awesome Lists containing this project
README
htmlSQL - Version 0.5
=====================htmlSQL ist eine experimentelle PHP Klasse mit der man auf HTML
Elemente über eine SQL ähnliche Syntax zugreifen kann. Das
bedeutet das man nicht mehr über komplizierte Funktionen
bestimmte Tags extrahieren muss, sondern einfach eine Query
wie diese ausführt:SELECT href,title FROM a WHERE $class == "liste"
^ HTML Attrib. ^ ^ Abfrage (kann auch leer sein)
die zurück- ^
gegeben ^ HTML Tags die durchsucht werden sollen
werden sollen "*" ist hier möglich = alle TagsDiese Abfrage gibt einen Array aller Links mit dem Attribut class="liste"
zurück.Alle HTTP Verbindungen in htmlSQL benützen die Snoopy Klasse
(Package Version 1.2.3 - URL: http://sourceforge.net/projects/snoopy/).
Allerdings wird Snoopy nicht für "file" oder "string" Queries benötigt.
Alle Snoopy betreffenden Dokumente (z.B: Copyright-Infos, Readme, usw.)
befinden sich im "snoopy_data/" Unterordner.Installation / Anwendung
------------------------Um htmlSQL in eigenen Projekten zu benützen ist es nur notwendig die
zwei Dateien "snoopy.class.php" und die "htmlsql.class.php" zu laden
(mit include oder z.B. require). Danach kann htmlSQL, wie in den
Beispielen (siehe examples/-Ordner), angesprochen werden. Dies sollte
nicht allzu schwer sein :-)Hintergrund / Geschichte
------------------------Ich hatte die Idee zu dieser Klasse als ich Daten von einer Web-Seite
extrahiert habe und dabei merkte das sich die Funktionen und Quelltexte
oftmals wiederholen. Da kam mir die Idee das ganze zu vereinfachen und
eine universelle Klasse dafür zu entwickeln.Warnung
-------Für die Abfragen wird die `eval()` Funktion benützt. Deshalb sollten alle
vom Besucher abhängige Daten wie z.b. IDs geprüft oder ggf. gefiltert
werden da es ansonsten möglich wäre schadhaften PHP Quelltext auszuführen.
Vertraue niemals Benutzereingaben!Todo
----- Den internen HTML Parser verbessern
- Ein eigenes Query system entwickeln und nicht das PHP eigene nutzen
(Die eval()-Lösung ist nicht wirklich schön)
- Mehr Fehlerprüfungen
- Unit tests
- LIMIT Funktion (wie in SQL)Anwendungsgebiete von htmlSQL
------------------------------ Daten von anderen Web-Seiten auslesen
- HTML basierte Datenbanken?
- XML Daten auslesenAuthor
------- [Jonas John](http://www.jonasjohn.de/)
Lizenz
------htmlSQL benützt eine modifizierte BSD Lizenz, welche ziemlich offen ist.
Der Lizenztext befindet sich in der "htmlsql.class.php".