猿问

如何使用php从类似HTML的响应中选择元素?

我刚刚在Facebook上进行curl请求,如果遇到这个问题,我会遇到一个问题,我可以轻松地继续进行所有工作。


我的卷曲代码


function curl($url, $data=null, $ua=null, $cookie=null){

    $c = curl_init();

    curl_setopt($c, CURLOPT_URL, $url);

    if($data != null){

        curl_setopt($c, CURLOPT_POST, true);

        curl_setopt($c, CURLOPT_POSTFIELDS, $data);

    }

    curl_setopt($c, CURLOPT_FOLLOWLOCATION, true);

    curl_setopt($c, CURLOPT_RETURNTRANSFER, true);

    curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);

    if($cookie != null){

        curl_setopt($c, CURLOPT_COOKIE, $cookie);

    }

    if($ua != null){

        curl_setopt($c, CURLOPT_USERAGENT, $ua);

    }

    $hmm = curl_exec($c);

    curl_close($c);

    return $hmm;

}

$ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0';

$data = curl('https://facebook.com/', 0, $ua, 0,); //$data stores the html response of Facebook.com

print_r($data);

因此,从这段代码中我们得到了facebook.com的html响应。我遇到的问题是从html响应中获取一些值,我需要获取值输入字段。您可以在此处查看视图源:-view -source:https: //www.facebook.com 因此,请帮助我从第一种形式(表单id =“ login_form” action =“ https://www.facebook.com/login/device-based/regular/login /?login_attempt = 1&lwv = 111“ method =” post“ novalidate =” 1“ onsubmit =”“)示例:-我需要从该字段中获取(输入类型=” hidden“ name =” jazoest“ value =” 2691“ autocomplete =“ off” /)名称和值,因此我需要回显jazoest,2691和其他类似的输入字段,我尝试了preg_match,但未按预期工作,我有一个与Dom相同的示例,它具有相同的功能


将此代码与curl函数一起使用


$ua = 'Mozilla/4.0 (compatible; MSIE 5.0; S60/3.0 NokiaN73-1/2.0(2.0617.0.0.7) Profile/MIDP-2.0 Configuration/CLDC-1.1)';

$data = curl('https://m.facebook.com/', 0, $ua, 0,); //$data stores the html response of Facebook.com

print_r($data);

这是Facebook和useragent在此处使用的移动Web网址,这是在Dom的帮助下,我们可以使用以下代码获取输入字段


function parse_inputs($html) {

    $dom = new DOMDocument;

    @$dom->loadxml($html);

    $inputs = $dom->getElementsByTagName('input');

    return($inputs);

}

从此代码中,我可以获取m.facebook.com的输入字段,但不能获取www.facebook.com的输入字段,请为我提供帮助,另外一个有用的示例也请在此处进行检查:-https: //github.com/jerry- riady / Script-auto-like-face / blob / master / update.php 在此先感谢您提供所有答案。


慕村9548890
浏览 155回答 2
2回答
随时随地看视频慕课网APP
我要回答