Есть ли способ обработки «реальных сеансов браузера» из PHP CLI? - PullRequest
0 голосов
/ 06 апреля 2020

В течение многих лет - десятилетий на этом этапе - я боролся с cURL (разновидность PHP), чтобы автоматизировать все виды «веб-задач». Когда-то это было достаточно просто, потому что все еще существовали настоящие программисты, делающие веб-сайты, а не люди, которые настолько невежественны, что их неумелость фактически служит формой безопасности через неизвестность, даже если это не было задумано.

В результате, сделать много вещей сегодня просто невозможно с помощью cURL, потому что все сайты имеют массивные, сложные «JavaScript пчелиные гнезда», которые передают данные друг другу, требуя, чтобы клиент был не только JavaScript - включен, но «полноценный браузер». Какой cURL абсолютно не такой.

Я пел в бесчисленные часы, пытаясь выяснить, как использовать такие вещи, как «Селен» и «Призрак. js», последний из которых давно ушел / мертв. Несмотря на то, что я могу делать много «сложных компьютерных дел», выяснить, что Selenium и другие предполагаемые программы «безголовый браузер» были для меня безнадежными. Они просто не выглядят должным образом задокументированными.

По этой причине мне сейчас интересно, знает ли кто-нибудь что-то, что работает на моем компьютере как «черный твердыня», с которой я могу общаться с PHP CLI. Например, я хочу сделать что-то вроде:

$real_browser_instance = new RealBrowserInstance('https://www.example.com/');
$cookies = $real_browser_instance->GetAllSavedCookies();
/* cURL request which uses $cookies, filled up with cookies that were saved using JavaScript when the page load occured, which cURL would've been entirely blind to. */

Это одна из тех вещей, в которую я действительно не могу поверить, это не "стандартная вещь"; во многих отношениях создается ощущение, что в какой-то момент в начале 2000-х они перестали делать материалы доступными для широкой публики c, и почти любое сложное программное обеспечение (которое фактически может выполнять некоторую полезную работу), созданное с тех пор, остается закрытым и не передается.

...