我正在做一个个人项目,它获取我当地气象站关闭学校/企业的内容,并将结果显示在我的个人网站上。由于该站点不使用RSS提要(遗憾的是),我考虑使用PHP抓取来获取页面内容,但我只想显示某个ID元素。这个是可能的吗?
我的PHP代码是,
<?php
$url = 'http://website.com';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
echo $output;
?>我正在考虑使用preg_match,但我不确定它的语法,也不确定这是不是正确的命令。我想要显示的ID元素是#LeftColumnContent_closings_dg。
发布于 2012-01-03 04:01:32
下面是一个使用DOMDocument的示例。它使用id=“<h1>”从第一个测试元素中提取文本...
$html = '
<html>
<body>
<h1 id="test">test element text</h1>
<h1>test two</h1>
</body>
</html>
';
$dom = new DOMDocument;
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$res = $xpath->query('//h1[@id="test"]');
if ($res->item(0) !== NULL) {
$test = $res->item(0)->nodeValue;
}发布于 2012-01-03 03:58:45
我在这类事情上使用的一个库是PHPQuery:http://code.google.com/p/phpquery/,它取得了巨大的成功。
你基本上把你的网站弄成了一个字符串(就像上面的一样),然后做:
phpQuery::newDocument($output);
$titleElement = pq('title');
$title = $titleElement->html();例如,这将获得title元素的内容。这样做的好处是,所有的方法都是以jQuery方法命名的,如果您已经了解jQuery,那么学习起来非常容易。
https://stackoverflow.com/questions/8704776
复制相似问题