首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只显示特定的ID与PHP网络抓取?

只显示特定的ID与PHP网络抓取?
EN

Stack Overflow用户
提问于 2012-01-03 03:53:32
回答 2查看 512关注 0票数 0

我正在做一个个人项目,它获取我当地气象站关闭学校/企业的内容,并将结果显示在我的个人网站上。由于该站点不使用RSS提要(遗憾的是),我考虑使用PHP抓取来获取页面内容,但我只想显示某个ID元素。这个是可能的吗?

我的PHP代码是,

代码语言:javascript
复制
<?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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-03 04:01:32

下面是一个使用DOMDocument的示例。它使用id=“<h1>”从第一个测试元素中提取文本...

代码语言:javascript
复制
$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;
}
票数 2
EN

Stack Overflow用户

发布于 2012-01-03 03:58:45

我在这类事情上使用的一个库是PHPQuery:http://code.google.com/p/phpquery/,它取得了巨大的成功。

你基本上把你的网站弄成了一个字符串(就像上面的一样),然后做:

代码语言:javascript
复制
phpQuery::newDocument($output);

$titleElement = pq('title');
$title = $titleElement->html();

例如,这将获得title元素的内容。这样做的好处是,所有的方法都是以jQuery方法命名的,如果您已经了解jQuery,那么学习起来非常容易。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8704776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档