PHP(?): URLs prüfen
Umlüx 28.03.2017 - 14:31 3590 8
Umlüx
Huge Metal Fan
|
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
|
|
Umlüx
Huge Metal Fan
|
|
XeroXs
doh
|
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?
|
Umlüx
Huge Metal Fan
|
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
.
|
index.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 {
"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
|
Folgt das Ding auch Javascript Redirects? Denke das ist das was (u.a.) bei Umlüx ned hinhaut..
|
Neo1010
.
|
ne folgt keinen redirects
|
Umlüx
Huge Metal Fan
|
NodeJs hmm. ok muss ich mir erstmal ansehen. danke einstweilen.
|