Versuchen, einen Schaber für die erste Notwendigkeit, die Daten zwischen den <a>
Tags kratzen machen. Ich habe den Code ein wenig modifiziert, um die Daten dazwischen zu extrahieren. Hier ist der Code.Php Schaber extrahieren Daten nur die zwischen Tags
<?php
function scrape_between($data, $start, $end){
$data = stristr($data, $start);
$data = substr($data, strlen($start));
$stop = strpos($data, $end);
$data = substr($data, 0, $stop);
return $data;
}
function cURL($url) {
$options = array(
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_FOLLOWLOCATION => TRUE,
CURLOPT_AUTOREFERER => TRUE,
CURLOPT_CONNECTTIMEOUT => 120,
CURLOPT_MAXREDIRS => 10,
CURLOPT_USERAGENT => "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1",
CURLOPT_URL => $url,
);
$ch = curl_init();
curl_setopt_array($ch, $options);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$url = "http://www.imdb.com/search/title?genres=action";
$results_page = curl($url);
$results_page = scrape_between($results_page, "<div id=\"main\">", "<div id=\"sidebar\">");
$separate_results = explode("<td class=\"title\">", $results_page);
foreach ($separate_results as $separate_result) {
if ($separate_result != " ") {
$results_urls[] = "http://www.imdb.com " . scrape_between($separate_result, "<a href=", "a>");
}
}
print_r($results_urls);
?>
Was ich suche ist, die Daten in Form einer Liste der Titel der Filme kommen zu machen. Was ist der richtige Weg, um dies zu erreichen, da ich nicht sicher bin, ob Regex hier verwendet wird oder nicht?
Mögliches Duplikat von [Tags für reguläre Übereinstimmungen mit Ausnahme von eigenständigen XHTML-Tags] (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags) – andrew
Dann benutze einfach DOM! – Ikari
Anstatt ihre Website zu scrappen, sollten Sie hier beginnen: http://www.imdb.com/licensing/ // Diese Frage könnte auch in dieser Hinsicht interessant sein, http://stackoverflow.com/questions/1966503/does -imdb-provide-an-api – CBroe