"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

PHP(?): URLs prüfen

Umlüx 28.03.2017 - 14:31 3590 8
Posts

Umlüx

Huge Metal Fan
Avatar
Registered: Jun 2001
Location: Kärnten
Posts: 8970
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.

differential image maker
Avatar
Registered: Jun 2004
Location: Wien
Posts: 6477
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

Huge Metal Fan
Avatar
Registered: Jun 2001
Location: Kärnten
Posts: 8970
z.b. https://www.ryanair.com/de/de/nutzl...aftsbedingungen
kommen die AGB? -> gut
keine AGB? -> nimma gut

XeroXs

doh
Avatar
Registered: Nov 2000
Location: Lieboch
Posts: 10336
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

Huge Metal Fan
Avatar
Registered: Jun 2001
Location: Kärnten
Posts: 8970
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

.
Registered: May 2003
Location: -
Posts: 1212
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

doh
Avatar
Registered: Nov 2000
Location: Lieboch
Posts: 10336
Folgt das Ding auch Javascript Redirects? Denke das ist das was (u.a.) bei Umlüx ned hinhaut..

Neo1010

.
Registered: May 2003
Location: -
Posts: 1212
ne folgt keinen redirects

Umlüx

Huge Metal Fan
Avatar
Registered: Jun 2001
Location: Kärnten
Posts: 8970
NodeJs
hmm. ok muss ich mir erstmal ansehen. danke einstweilen.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz