Когда мне нужно записать веб-сайт, я обычно:
1 - перемещаться по веб-сайту target в обычном браузере (ff, chrome и т. Д.), при мониторинге / ведении журнала любых POST
/ GET
запросов, содержащих соответствующую информацию. через Developer Tools
-> Network Tab
.
Обратите особое внимание на запросы XHR
, так как они обычно содержат данные json
.
Вот небольшое видео, которое я сделал в качестве примера:
https://www.youtube.com/watch?v=JbiZBGt8cos
Вы можете имитировать request headers
, сделанный ранее (объяснено в видео), и использовать его по запросу curl
, т.е.:
$headers = [
"Connection: keep-alive",
"Accept: application/json, text/javascript, */*; q=0.01",
"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36",
"DNT: 1",
"Accept-Language: pt,en-US;q=0.9,en;q=0.8,pt-PT;q=0.7,pt-BR;q=0.6",
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://s1te.com/json_rand.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$server_output = curl_exec ($ch);
curl_close ($ch);
print $server_output ;
2 - В некоторых случаях невозможно сканировать определенные URL-адреса без клиента с поддержкой JavaScript , когда это происходит, я обычно использую Selenium с Chrome
или Firefox
. Вы также можете использовать PhantomJS , браузер без головы. Последние версии GeckoDriver (используемые Selenium) также поддерживают просмотр без заголовка.
Я знаю, что вопрос о PHP
, но если ОП нужно использовать Selenium
, Python
гораздо более интуитивно понятен, я бы сказал. Исходя из этого, вот пример Selenium
в Python
:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.clear()
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
driver.close()
Пример Src