Ich schreibe eine Web-Crawler auf php zu laden, ich bin mit dem folgenden Verfahren:schnellste Weg, um HTML-Datei PHP-Skript
Aktuelle Methode
function getPublicationData($url){
static $seen = array();
if (isset($seen[$url])) {
return;
}
$seen[$url] = true;
$cURL = curl_init($url);
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);
$htmlDoc = curl_exec($cURL);
$dom= new DOMDocument('1.0');
libxml_use_internal_errors(true);
$dom->loadHTML($htmlDoc);
$dom_xpath = new DOMXPath($dom);
$strongElements = $dom_xpath->query("//strong[@class='publication-meta-type']");
foreach($strongElements as $strongElement){
echo $strongElement->nodeValue;
}
}
Das Problem ist, dass PHP hat ein Zeitlimit von 30 Sekunden und ich muss auf eine ziemlich große Anzahl von Seiten zugreifen (Mein Gastgeber lässt mich das Zeitlimit nicht ändern).
Es wäre schön, nur ein paar bestimmte Knoten von der Seite oder etwas in der Art zu bekommen.
Kann mir jemand eine Lösung geben?
@Martin Ich vermute, OP ist auf Shared Hosting. Hosts, die die Ausführungszeit von PHP einschränken ("Mein Host lässt mich das Zeitlimit nicht ändern") lassen Sie die php.ini nicht so bearbeiten, dass diese Limits entfernt werden. – ceejayoz
@ceejayoz Ich habe gerade gelesen und so meinen Kommentar gelöscht :-p – Martin
Wie wird diese Methode ausgeführt? Führen Sie es aus dem Browser oder aus einem Cron-Skript? – moscar