【问题标题】:Simple PHP script for downloading results用于下载结果的简单 PHP 脚本
【发布时间】:2016-07-20 05:06:05
【问题描述】:

我需要使用 for 循环从网站下载结果来编译它们。

(注意这是一个显示带有这些参数的网页的 ASP 请求)

我写了以下代码来得到这个:

<?php
for ($i=10; $i<500; $i++) {
$m = $i*10;

$dl = $query;
$text = file_get_contents($dl);
$doc = new DOMDocument('1.0');
$doc->loadHTML($text);
$aObj = $doc->find('Academic');
if (count($aObj) > 0)
{
   echo "<h4>Found</h4>";
   //Don't download this
}
else
{
   echo "<h4>Not found</h4>";
   //Download this
}
}
?>

但它返回几个错误。显然它不能将 ASPX 文件复制到 HTML DOM。我该怎么做呢?另外,如何下载/保存找不到字符串“下载”的页面?

我还认为我在文档中查找“下载”的方法不起作用。这样做的正确方法是什么?

【问题讨论】:

  • 哥们,你是认真的吗?您提供的示例链接暴露了真实学生的敏感信息???
  • 嗯,这真的不是那么敏感,只是一些公开可用的存档结果。
  • 这是一个屏幕截图:imm.io/11bct 或者,我可以使用 for 循环和 PHP CURL 以某种方式下载所有文件吗?
  • 这里的代码没有认证,其实用一个简单的浏览器就可以搞定,我敢肯定它也被索引了..我真的没有看到链接中的问题问题。

标签: php asp.net html


【解决方案1】:

您尝试解析的网站包含很多错误,因此您将无法使用标准的 DOMDocument 对象。您可以尝试使用 SimpleHTMLDOM (http://simplehtmldom.sourceforge.net/) 或 phpQuery (https://code.google.com/p/phpquery/) 等库,并希望它们足以解析格式错误的文档。

如果您只需要一些信息,使用正则表达式和 preg_match_all (http://www.php.net/manual/en/function.preg-match-all.php) 可能会更容易找到每个出现的“学术”。

注意,在处理诸如 HTML 之类的结构化文档时,通常不建议使用正则表达式,因为您将无法利用该结构,但因为这些文档似乎包含超过 300 个错误并且不同彼此之间可能是唯一的方法。

【讨论】:

    猜你喜欢
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    • 2011-05-31
    相关资源
    最近更新 更多