解析非HTML网站

时间:2012-09-17 05:24:26

标签: php javascript xml parsing dom

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

例如:

DChar = 'c2adf7354aa1f505b8a96b81017e8837';

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

的file_get_contents( 'HTML');

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

提前感谢您的所有帮助!

2 个答案:

答案 0 :(得分: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()函数不起作用而且出于安全目的而出现这种情况,那么执行你的后续操作可能要复杂得多(或者一个坏主意)。更容易遵循安全流程。

答案 1 :(得分: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]
?>

希望它有所帮助。