Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: парсинг через php+phantomjs
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » парсинг через php+phantomjs

Страниц (1): [1]
 

1. k0ma - 16 Августа, 2017 - 15:56:12 - перейти к сообщению
Собственно необходимо залогинитсья на сайте при помощи PHP(сделано) далее с помощью phantomjs спарсить страницу после авторизации и покласть все полученные данные в отдельный файл для дальнейшего парсинга из него данных.
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. $url= 'https://123.ru/login';
  3. $ch = curl_init();
  4. curl_setopt ($ch, CURLOPT_HEADER, 1);
  5. curl_setopt ($ch, CURLOPT_URL, $url);// откуда пришли на эту страницу
  6. curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0); //не проверять сертификат на хосте
  7. curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0); // не проверять сертификат на сервере
  8. curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); //следовать за перенаправлениями
  9. curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3');
  10. curl_setopt ($ch, CURLOPT_VERBOSE, 1); //полный отчет работы Curl
  11. curl_setopt ($ch, CURLOPT_REFERER, 'https://nsdb2c.altegrosky.ru/');
  12. curl_setopt ($ch, CURLOPT_POST, 1); // устанавливаем метод POST
  13. curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt");  
  14. curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt");
  15. curl_setopt ($ch, CURLOPT_POSTFIELDS, 'j_username=login&j_password=pass');
  16. curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  17. $html=curl_exec($ch); // выполняем запрос curl
  18.  
  19.  
  20. $title = shell_exec('phantomjs script.js https://123.ru/operator/');
  21.  
  22. echo "hello <br>".$result;
  23.  
  24. ?>

Собственно код script.js
CODE (htmlphp):
скопировать код в буфер обмена
  1. var webpage = require('webpage');
  2. var page = webpage.create();
  3.  
  4. page.settings = {
  5.   loadImages: false,
  6.   javascriptEnabled: true,
  7.   encoding: "utf8",
  8.   userAgent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36',
  9. };
  10.  
  11. var page = require('webpage').create();
  12. phantom.cookiesEnabled = true;
  13.  
  14. page.open("https://123.ru/operator/", function(status) {
  15.   if (status === "success") {
  16.         window.setTimeout(function() {
  17.       page.render("qwerty.jpg");
  18.       phantom.exit();
  19.     }, 5000);
  20.   }
  21. });
2. Ch_chov - 16 Августа, 2017 - 17:15:08 - перейти к сообщению
Цитата:
$title = shell_exec('phantomjs script.js https://123.ru/operator/');

Для этого есть PHP обёртка.
https://github[dot]com/jonnnnyw/php-phantomjs

Не понятно как вы собираетесь "шарить" авторизацию между CURL и PhantomJS.

 

Powered by ExBB FM 1.0 RC1