0

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

前任:

DChar='c2adf7354aa1f505b8a96b81017e8837';

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

file_get_contents('html');

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

感谢您提前提供的所有帮助!

4

2 回答 2

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() 函数不起作用并且似乎出于安全目的而这样做,那么执行您之后的操作可能会更复杂(或一个坏主意)并且可能更容易遵循安全流程。

于 2012-09-17T07:03:54.693 回答
0

尝试这个:

<?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]
?>

希望能帮助到你。

于 2012-09-17T11:12:45.003 回答