PHP(?): URLs prüfen

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/php-urls-prfen_248517/page_1 - zur Vollversion wechseln!


Umlüx schrieb am 28.03.2017 um 14:31

wir haben hier eine kleine datenbanktabelle mit ein paar dutzend URL's. hauptsächlich links auf die AGB von fluggesellschaften und ähnlichem.
nun würden wir diese tabelle gerne wöchentlich auf gültigkeit prüfen, z.b. per PHP script damit unsere leute das im intranet bedienen können.
wie kann ich sowas am besten angehen?

rein auf eine gültige URL zu prüfen ist zuwenig, immerhin hat inzwischen jede webseite custom error landingpages. und deren HTTP header ist auch nicht immer sauber auswertbar..


mr.nice. schrieb am 28.03.2017 um 14:35

Hier gibt's eine große Auswahl von open source web crawlern:
http://bigdata-madesimple.com/top-5...or-data-mining/

Musst dir halt überlegen, was du als "webseite noch gut" bzw. "webseite nimma gut" heranziehst.


Umlüx schrieb am 28.03.2017 um 15:40

z.b. https://www.ryanair.com/de/de/nutzl...aftsbedingungen
kommen die AGB? -> gut
keine AGB? -> nimma gut


XeroXs schrieb am 28.03.2017 um 16:15

Wennst dich auf den Status Code nicht verlassen willst (was aber imho schon gehen sollte), dann kannst du zusätzlich das Ergebnis noch auf 1-2 Keywords prüfen.. bei so einer überschaubaren Anzahl von Seiten sollte das ja keine große Sache sein da 1x die Keywords zusammensuchen. Ein Web Crawler ist da ja schon eher Overkill.

Aber was suchst jetzt eigentlich? Einen Ansatz, eine Library oder ein fixfertiges Tool bzw jemanden ders dir codet? :p


Umlüx schrieb am 28.03.2017 um 16:23

irgend ein ansatz würd mir schon reichen.
momentan test ich in php herum weils sich bei uns halt anbietet.
bisher hab ich versucht die http responses auszuwerten, geht nicht weil nicht jede seite was korrektes sendet (bzw einfach immer 200 OK). dann hab ich versucht, inhalte mit file_get_contents zu parsen, ging auch nicht da die hälfte (besonders https) mit stream errors abbricht. und momentan scheitere ich gerade mit curl, da bekomm ich teilweise gar nichts zurück.

es is zum plärrn.


Neo1010 schrieb am 28.03.2017 um 16:51

index.js

Code: JS
var request = require('request');


var urls =  [
	"http://www.fluege.de/service/terms",
	"https://www.austrian.com/Info/LegalRegulations/ConditionsOfCarriage.aspx?sc_lang=de&cc=AT"
	];
	
var keywords = ["AGB " , "Geschäftsbedingungen"];


urls.forEach(function(url){
	request(url, function(error, response, html){
		if(!error){
			var hit = false;
			keywords.forEach(function(keyword){
				if(html.indexOf(keyword) != -1){
					hit = true;
				}
			});
			if(!hit){
				console.log("probably not an AGB site: " + url);
			}
		}else{
			console.log("failed loading: " +  url);
		}
	});
});

package.json
Code: JSON
{
  "name": "agb_parser",
  "description": "",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "dependencies": {
    "request"    : "latest"
  }
}


1) NodeJs installieren

2) >> npm install

3) >> node index.js

;)


XeroXs schrieb am 28.03.2017 um 16:53

Folgt das Ding auch Javascript Redirects? Denke das ist das was (u.a.) bei Umlüx ned hinhaut..


Neo1010 schrieb am 28.03.2017 um 16:54

ne folgt keinen redirects


Umlüx schrieb am 29.03.2017 um 09:09

NodeJs
hmm. ok muss ich mir erstmal ansehen. danke einstweilen.




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026