【问题标题】:How can I parse a website with PHP?如何使用 PHP 解析网站?
【发布时间】:2012-08-19 18:38:12
【问题描述】:

我想制作一个网站,其中包含新闻,就像我的其他网站出现在 Internet 上一样。

我没有足够的内容。所以我想从另一个新闻网站获取内容(当然,我获得了从他们的网站复制他们的内容的许可)。

为此,我使用了Simple HTML DOM,它在我的其他网站上进展顺利,但是当我在发布网站上应用我的脚本时,它不起作用(什么也不输出)。

这是我要从中获取数据的链接:hesspress.com

代码:

require_once 'simple_html_dom.php';
$lien='http://www.hesspress.com';
$html=new simple_html_dom();
$html->load_file($lien);
$k=$html->find('a',0)->href;
print_r($k);

【问题讨论】:

  • 所以你想获得页面上的第一个链接?
  • 不,这只是一个测试,看看我的脚本是否能够在我处理完剩下的事情后获得 html 网站的流量
  • 您的发布服务器可能已禁用通过file_get_contents 获取网页。在这种情况下,您将不得不使用 cURL,就像我的回答一样。

标签: php parsing dom


【解决方案1】:

这是我会使用的,您可以根据自己的目的进行修改。

它使用built-in PHP DOM

代码:

<?php
$url = 'http://acid3.acidtests.org';
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
$html = curl_exec($handle);
libxml_use_internal_errors(true); // Prevent HTML errors from displaying
$doc = new DOMDocument();
$doc->loadHTML($html);
$link = $doc->getElementsByTagName('a')->item(0);
echo 'Link text: ' . $link->nodeValue;
echo '<br />';
echo 'Link URL: ' . $link->getAttribute('href');
?>

【讨论】:

  • 谢谢它有效,但我不知道为什么它会给出这个警告 这些是警告警告:DOMDocument::loadHTML() [domdocument.loadhtml]: ID box_opinions 已经在实体中定义,行:578在第 8 行的 C:\wamp\www\parse.php 中警告:DOMDocument::loadHTML() [domdocument.loadhtml]:ID mainTicker 已在实体中定义,行:C:\wamp\www\parse.php 中的 579第 8 行链接文本:ÙØ§Ù ÙØ£Ø¹Ùا٠链接 URL:/economie/index.1.html
  • @TiAmoLaky 那是因为页面编码错误。我已更新我的答案以忽略错误。
【解决方案2】:

您不能在您的网站中使用此代码,如果您使用此链接http://php.net/manual/en/book.dom.php,则可以这样做

【讨论】:

    猜你喜欢
    • 2017-03-08
    • 2011-02-08
    • 1970-01-01
    • 2019-11-10
    • 1970-01-01
    • 2017-08-21
    • 1970-01-01
    • 2012-02-12
    • 2019-06-25
    相关资源
    最近更新 更多