Я играл с cURL и xpath для некоторых webscraping. Я, наконец, получил свой код, как я хочу, но после попытки на другой стороне он остановился. Единственное, что я изменил, это путь и URL. Я совершенно новый и работаю с этим только неделю. Поэтому, медведь со мной, если это очевидный провал.Xpath-запрос не будет работать
Мой код:
<?php
/*----Connection to Database----*/
include('wp-config.php');
mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
mysql_select_db("db");
/*----US Dollar Index----*/
$url = "http://www.wsj.com/mdc/public/page/2_3023-fut_index-futures.html";
$userAgent = 'Googlebot/2.1 (http://www.googlebot.com/bot.html)';
// Make the cURL request
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$html= curl_exec($ch);
if (!$html) {
\t echo "<br />cURL error number:" .curl_errno($ch);
\t echo "<br />cURL error:" . curl_error($ch);
\t exit;
}
// Parse the html into a DOMDocument
$dom = new DOMDocument();
@$dom->loadHTML($html);
// Grab all the MONTH on the page
$xpath = new DOMXPath($dom);
$data = $xpath->query("/html/body/div[6]/div[3]/div/table[9]/tbody/tr[position() >= 3 and position() <=6]");
//[position() >= 1 and position() <=13]
// Searching for data
$values = array();
foreach($data as $row) {
\t $values[] = $row->nodeValue;
}
print_r($values);
?>
</body>
</html>
Сыворотка, вы говорите, что она остановлена, означает ли это, что сценарий вычеркнут, не возвратил контент, произошла ошибка .... и т. Д.?? – Rasclatt
Извините, что не предоставил эту информацию. Сценарий не перегревал или не возвращал ошибку. Единственное, что отображается: «Array()» –
, что вы имеете в виду, что вы «изменили путь и URL»? К чему вы его изменили? xpath, который у вас есть, действителен только для URL-кода вашего кода ... – drkthng