注意谷歌新闻是如何在每一篇文章节选的底部有源代码的。
卫报- ABC新闻-路透社-彭博社
我只是想模仿一下。
例如,在提交URL http://www.washingtontimes.com/news/2010/dec/3/debt-panel-fails-test-vote/时,我希望返回The Washington Times
如何使用php实现这一点?
发布于 2010-12-03 19:20:00
我的答案是扩大@AI W的答案使用标题的网页。下面是完成他所说的代码。
<?php
function get_title($url){
$str = file_get_contents($url);
if(strlen($str)>0){
$str = trim(preg_replace('/\s+/', ' ', $str)); // supports line breaks inside <title>
preg_match("/\<title\>(.*)\<\/title\>/i",$str,$title); // ignore case
return $title[1];
}
}
//Example:
echo get_title("http://www.washingtontimes.com/");
?>输出
华盛顿时报-政治,打破新闻,美国和世界新闻
正如你所看到的,这并不是Google所使用的,所以这让我相信他们会得到一个URL的主机名并将其与他们自己的列表相匹配。
http://www.washingtontimes.com/ =>华盛顿时报
发布于 2010-12-03 19:15:17
$doc = new DOMDocument();
@$doc->loadHTMLFile('http://www.washingtontimes.com/news/2010/dec/3/debt-panel-fails-test-vote/');
$xpath = new DOMXPath($doc);
echo $xpath->query('//title')->item(0)->nodeValue."\n";输出:
债务委员会未能通过测试投票--华盛顿时报
显然,您还应该实现基本的错误处理。
发布于 2010-12-03 20:30:21
通过使用域主页上的get_meta_tags(),纽约时报可以带回一些可能需要截断但可能有用的内容。
$b = "http://www.washingtontimes.com/news/2010/dec/3/debt-panel-fails-test-vote/" ;
$url = parse_url( $b ) ;
$tags = get_meta_tags( $url['scheme'].'://'.$url['host'] );
var_dump( $tags );其中包括“华盛顿时报”就影响我们国家未来的问题发表突发新闻和评论。
https://stackoverflow.com/questions/4348912
复制相似问题