Как остановить выполнение кода JavaScript, возвращенного в качестве ответа от удаленного сайта с cURL - PullRequest
0 голосов
/ 26 сентября 2019

Я в такой ситуации.

Я использую API веб-сайта для анализа данных, отправляя запросы cURL с помощью PHP.

На одной конкретной конечной точке APIответ выглядит следующим образом:

<script type="text/javascript">
$(document).ready(function () {
    $("#submitForm").submit();
});
</script>
<form id="submitForm" action="http://.." method="POST">
    <input type="hidden" name="data1" value="1" />
    <input type="hidden" name="data2" value="2" />
    <input type="hidden" name="data3" value="3" />
</form>

Мне нужно получить данные из скрытых полей внутри формы (разбор html / javascript).

Я могу получить этот точный код в ответе при использовании Postman, но получить то же самое в PHP с помощью cURL оказалось гораздо сложнее, чем ожидалось.

При запросе данных из URL код выполняется и в основномперенаправляет на другую ссылку (т.е. действие в форме), таким образом, cURL завершается ошибкой и возвращает ошибку тайм-аута.

Я пытался заставить его работать с rmccue / Requests, а также с простым старым curl, воткод:

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "https://website.html");
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

     // Timeout in seconds
    curl_setopt($ch, CURLOPT_TIMEOUT, 0);

    $responseBody = curl_exec($ch);

В приведенном выше коде вы увидите тайм-аут, установленный на 0, поскольку это единственный способ даже получить ответ, тем не менее, это контент с веб-сайта, на который он перенаправлен, поэтомунефактический JavaScript / HTML мне нужен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...