每次加载页面时都会有一个站点输出一组新的数字,以便更安全地登录,我正在尝试自动化该过程。现在,因为该网站实际上并没有将其放在html格式中,而只是在第一行显示输出。
例如:
DChar = 'c2adf7354aa1f505b8a96b81017e8837';
我如何解析它并使用它将其保存为字符串?! DOM函数不起作用,因为它不是一个真正的站点,只是一个输出。我一直在用javascript尝试它,但如果你能想到使用PHP或XML的方式那就好了。还有一件事,在PHP中你会认为你可以使用
的file_get_contents( 'HTML');
但由于某种原因它不会连接到运行javascript的服务器,输出我要解析的内容。 PHP无法连接服务器到服务器吗?我最好猜测为什么它至少不起作用。
提前感谢您的所有帮助!
答案 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]
?>
希望它有所帮助。