【问题标题】:Parsing non-html sites [closed]解析非 html 网站 [关闭]
【发布时间】:2012-09-09 07:55:45
【问题描述】:

有一个网站会在您每次加载页面时输出一组新数字以实现更安全的登录,我正在尝试自动化该过程。现在,由于该站点实际上并未将其放入 html 格式,而只是在第一行显示输出。

例如:

DChar='c2adf7354aa1f505b8a96b81017e8837';

如何解析并使用它保存为字符串?! DOM 函数不起作用,因为它不是一个真正的站点,只是一个输出。我一直在尝试使用 javascript,但如果您能想到一种使用 PHP 或 XML 的方法,那也一样好。还有一件事,在 PHP 中你会认为你可以使用

file_get_contents('html');

但由于某种原因,它不会连接到运行输出我要解析的内容的 javascript 的服务器。 PHP无法将服务器连接到服务器对吗?我最好的猜测为什么它至少不起作用。

提前感谢所有帮助!

【问题讨论】:

  • 如果他们不让你进入系统,那你为什么要分叉系统?
  • 我有点困惑:我知道您正在尝试检索一个没有 HTML 内容而只有一行文本的页面,但我不明白您正在尝试什么语言用于检索该页面。
  • @swapnesh 为方便起见我很懒:P
  • @icktoofay 它显示为一个网站,www.*.com/* 等。我很难过,所以我会接受任何语言。我似乎无法将它作为我列出的任何语言的输入。我有 JS、PHP 和 XML 方面的经验,所以我试图找到一种使用其中一种语言的方法。三者中的任何一个。 (哦,还有 HTML,但那是一种极简的语言)
  • 您可以通过网络浏览器访问该页面吗?

标签: php javascript xml parsing dom


【解决方案1】:

如果它是一个普通网页,您可以在地址栏中手动输入并且我理解您当时想要做什么,使用 PHP 您应该能够使用 file_get_contents("url-for-the-page") ;

然后你可以使用像preg_match("'([^']*)", $string, $results); 这样的正则表达式来只选择单引号内的部分。

如果它是一个“正常”的网页,看不出为什么这种方法不起作用,过去它对我来说还可以。

话虽如此,你说它对你不起作用。如果您需要更多控制,可以尝试PHP cURL。这是一个取自 cURL 网站的示例,它将 HTML 页面放入 php 变量中。

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://www.myurl.com/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$result=curl_exec ($ch);
curl_close ($ch);
?>

请记住,如果由于 file_get_contents() 函数不起作用,并且似乎出于安全目的而这样做,那么执行您之后的事情可能会更加复杂(或者是一个坏主意)更容易遵循安全流程。

【讨论】:

    【解决方案2】:

    试试这个:

    <?php
    $site = 'SITE_URL_HERE';
    
    $data = file_get_contents($site); // may use curl also.
    
    // suppose $data="DChar='c2adf7354aa1f505b8a96b81017e8837';",
    // and you want the value within the quotes.
    
    $data = explode( "'", trim($data) );
    
    // result is in $data[1]
    ?>
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-14
      • 2017-04-04
      • 1970-01-01
      • 1970-01-01
      • 2014-08-11
      • 2014-09-11
      • 1970-01-01
      相关资源
      最近更新 更多