PHP Datascraping - Div标签中的特定数据

时间:2016-01-30 15:31:44

标签: php curl web-scraping

到目前为止,我目前已获得此代码:

<?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类中,如何在没有完整网站的情况下仅提取该信息?

1 个答案:

答案 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(和唯一的一个)。