【问题标题】:loadHTMLFile not working on redirect pagesloadHTMLFile 在重定向页面上不起作用
【发布时间】:2014-02-07 03:23:20
【问题描述】:

我一直在尝试loadHTMLfile。它在大多数情况下运行良好,但在许多情况下都失败了。我想知道是否有解决以下问题的方法。

很多时候,loadHTMLfile 会失败,例如,如果提供给函数的 URL 是:www.somedomain.com,当在浏览器地址栏中输入这样的 URL 时,它会重定向到之前的 www.somedomain.com/page/default.asp它呈现。

网络爬虫如何克服这个问题?有没有办法使用一些 PHP 函数,例如 loadHTMLfile 来加载在向服务器发出请求并发生所有重定向后呈现的文档的 HTML 文件? (本质上是模拟用户通过任何浏览器地址栏访问 URL)

感谢任何建议,在此先感谢!

【问题讨论】:

  • 网络爬虫如何克服这个问题? - 他们没有使用 PHP

标签: php curl web-crawler


【解决方案1】:
//without following redirects
$ch = curl_init('http://google.com');
curl_setopt_array($ch, array(
    CURLOPT_RETURNTRANSFER => true
    CURLOPT_ENCODING => 'gzip, deflate'
));
$content = curl_exec($ch);
echo $content;

//with following redirects
$ch = curl_init('http://google.com');
curl_setopt_array($ch, array(
    CURLOPT_RETURNTRANSFER => true
    CURLOPT_ENCODING => 'gzip, deflate',
    CURLOPT_FOLLOWLOCATION => true,
));
$content = curl_exec($ch);
echo $content;

【讨论】:

  • 感谢@cetver 的回复。您能否使用您的代码 sn-p 显示一个使用任何域(即somedomain.com)在重定向后获取 html 内容的基本示例?感谢您的帮助!
  • 谢谢!您能否澄清这两行的目的:CURLOPT_RETURNTRANSFER => true CURLOPT_ENCODING => 'gzip, deflate',
  • 您可以在这里找到所有信息:php.net/manual/en/function.curl-setopt.php
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-04
  • 2013-08-16
  • 2015-10-09
相关资源
最近更新 更多