Как визуализировать javascript с другого сайта, внутри приложения PHP?

76
9

То, что я пытаюсь сделать, это прочитать определенную строку с веб-страницы из моего PHP-приложения. Это моя экспериментальная установка:


      <?php
$url = "http://www.some-web-site.com";
$file_contents = file_get_contents($url);
$findme = 'text to be found';
$pos = strpos($file_contents, $findme);
if ($pos == false) {
echo "The string '$findme' was not found in the string";
} else {
echo "The string '$findme' was found in the string";
echo " and exists at position $pos";
}
?>

Операторы "if" содержат эхо-операторы, теперь они будут заменены на операторы базы данных, текущая настройка - для проверки функциональности.


В основном проблема заключается в том, что с использованием этого метода любая java на странице возвращается как script. Мне нужен текст, который должен отображаться script внутри браузера. Есть ли способ сделать это в PHP?


То, что я в конечном счете пытаюсь достичь, - это обновление акций с сайта электронной коммерции путем чтения уровня запаса от поставщика сайта. Поставщик не использует RSS-каналы для этого.

спросил(а) 2021-01-19T18:36:20+03:00 2 месяца, 3 недели назад
1
Решение
75

cURL не имеет анализатора javascript. как таковой, если контент, который вы пытаетесь прочитать, помещается на страницу через Javascript после первоначальной рендеринга страницы, тогда он не будет доступен через cURL.

ответил(а) 2021-01-19T18:36:20+03:00 2 месяца, 3 недели назад
45

Предполагается, что результат script будет выполнен и вернется к вашему script.
PHP не поддерживает каких-либо особенностей самого веб-браузера.


Я предлагаю вам попробовать узнать о "веб-искателе" и "веб-браузерах", которые включены в .NET framework (а не в PHP).


чтобы вы могли использовать команду exec() в php для ее вызова.


попробуйте найти пример кода веб-искателя и веб-браузеров на codeproject.com


надеюсь, что это сработает.

ответил(а) 2021-01-19T18:36:20+03:00 2 месяца, 3 недели назад
44

Вы можете получить всю веб-страницу в виде файла:


function get_data($url)
{
$ch = curl_init();
$timeout = 5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$returned_content = get_data('http://example.com/page.htm');
$my_file = 'file.htm';
$handle = fopen($my_file, 'w') or die('Cannot open file: '.$my_file);
fwrite($handle, $returned_content);

Тогда, я полагаю, вы можете использовать класс, например, описанный в этой ссылке ниже, в качестве руководства для ветки javascript от html (обычно это в заголовках). для связанных (импортированных).js файлов вам придется повторять функцию для этих URL-адресов, а также для связанных/импортированных css. Вы также можете захватить изображения, если вам нужно сохранить их в виде файлов.
http://www.digeratimarketing.co.uk/2008/12/16/curl-page-scraping-script/

ответил(а) 2021-01-19T18:36:20+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема