到目前为止,我目前已获得此代码:
<?php
$curl = curl_init('WebHere');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$page = curl_exec($curl);
if(curl_errno($curl))
{
echo 'Scraper error: ' . curl_error($curl);
exit;
}
curl_close($curl);
$regex = '/<div class="stockinfo1">(.*?)<\/div>/s';
if ( preg_match($regex, $page, $list) )
echo $list[0];
else
print "Not found";
?>
我试图定位网站的某个特定部分,它位于名为stockinfo1的div类中,如何在没有完整网站的情况下仅提取该信息?
答案 0 :(得分:3)
要检索您需要解决方案的html部分,可以使用正则表达式but someone will not be so happy。 另一种方法是使用允许您解析页面DOM的库,例如PHP Simple HTML DOM Parser。这非常简单易用,特别是如果您有使用jQuery的经验。
使用PHP Simple HTML DOM Parser的解决方案如下:
$html = file_get_html($url); // you don't need to use curl
$yourDesiredContent = $html->find('div.stockinfo1', 0)->plaintext;
无论如何,如果要使用正则表达式,请编辑将echo $list[0];
更改为echo $list[1];
的代码:您必须仅打印正则表达式括号内的内容,这些内容对应于组编号1(和唯一的一个)。