Я в такой ситуации.
Я использую 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 мне нужен.