Я просто делал запросы керлинга в Facebook. У меня возникла проблема: если я смогу просто преодолеть эту проблему, я мог бы продолжить все легко.
Мой код скручивания
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);
Итак, из этогоВ коде мы получаем ответ html от facebook.com. Моя проблема, в которой я застрял, заключалась в получении некоторых значений из ответа 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 =" ") Пример: - Мне нужно получитьиз этого поля (input type = "hidden" name = "jazoest" value = "2691" autocomplete = "off" /) name и value, поэтому мне нужно повторить 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);
Это URL веб-страницы для мобильных устройств Facebook и useragent, использованный здесь сгос помощью Dom мы можем получить поля ввода с кодом ниже
function parse_inputs($html) {
$dom = new DOMDocument;
@$dom->loadxml($html);
$inputs = $dom->getElementsByTagName('input');
return($inputs);
}
$inputs = parse_inputs($data);
$post_params = "";
foreach ($inputs as $input) {
$post_params .= $input->getAttribute('name') . '=' . urlencode($input->getAttribute('value')) . '&';
}
print_r($post_params);
Из этого кода я могу получить поля ввода для m.facebook.com, но не для www.facebook.com, пожалуйста, помогите мнес этим и другим полезным примером здесь, пожалуйста, проверьте это также: - https://github.com/jerry-riady/Script-auto-like-face/blob/master/update.php Заранее спасибо за все ответы.