質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

0回答

2384閲覧

phpでスクレイピング

Sh_Tomato

総合スコア12

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

2クリップ

投稿2019/06/16 10:45

phpでスクレイピングをし、
スクリーンショットを保存するコードを作りたいです。

https://www.genius-web.co.jp/blog/cat-119/selenium_+implementation.html
こちらのサイトを参考に以下コードで実行いたしましたが、

PHP Fatal error: Uncaught Facebook\WebDriver\Exception\WebDriverException: JSON decoding of remote response failed.
というエラーが発生しております。
Seleniumの仕組みをいまいちわかっていないこともあり、
原因が思いつかないのですがわかる方いらっしゃいますでしょうか、

OS:CentOS7
ブラウザ:GoogleChrome(ver75.0.3770.90)
インストールしたもの
・PHP 7.1.30
・GoogleChrome(ver75.0.3770.90)
・chromedriver(75.0.3770.90)
・Selenium-server
・php-webdriver

以下のtest.phpはドキュメントルートにあり、
インストールした各ツールは/usr/local/bin配下にあります。

<?php require '/usr/local/bin/vendor/autoload.php'; use Facebook\WebDriver\Chrome\ChromeOptions; use Facebook\WebDriver\Remote\DesiredCapabilities; use Facebook\WebDriver\Remote\RemoteWebDriver; use Facebook\WebDriver\WebDriverBy; use Facebook\WebDriver\WebDriverExpectedCondition; $options = new ChromeOptions(); $options->addArguments(['--headless']); $host = 'http://localhost:80'; $capabilities = Facebook\WebDriver\Remote\DesiredCapabilities::chrome(); $capabilities->setCapability(ChromeOptions::CAPABILITY, $options); $driver = Facebook\WebDriver\Remote\RemoteWebDriver::create($host, $capabilities); $driver->get('https://www.google.co.jp/'); $browserLogs = $driver->manage()->getLog('browser'); $element = $driver->findElement(WebDriverBy::name('q')); $element->sendKeys('php スクレイピング'); $element->submit(); $driver->wait(15)->until( WebDriverExpectedCondition::titleIs('php スクレイピング - Google 検索') ); if ($driver->getTitle() !== 'php スクレイピング - Google 検索') { throw new Exception('fail'); } $file = "サンプル_chrome.png"; $driver->takeScreenshot($file); $driver->close();

上記実行をすると以下エラーが発生いたします

PHP Fatal error: Uncaught Facebook\WebDriver\Exception\WebDriverException: JSON decoding of remote response failed. Error code: 4 The response: '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>404 Not Found</title> </head><body> <h1>Not Found</h1> <p>The requested URL /session was not found on this server.</p> </body></html>' in /usr/local/bin/vendor/facebook/webdriver/lib/Remote/HttpCommandExecutor.php:298 Stack trace: #0 /usr/local/bin/vendor/facebook/webdriver/lib/Remote/RemoteWebDriver.php(126): Facebook\WebDriver\Remote\HttpCommandExecutor->execute(Object(Facebook\WebDriver\Remote\WebDriverCommand)) #1 /var/www/html/test.php(14): Facebook\WebDriver\Remote\RemoteWebDriver::create('http://localhos...', Object(Facebook\WebDriver\Remote\DesiredCapabilities)) #2 {main} thrown in /usr/local/bin/vendor/facebook/webdriver/lib/Remote/HttpCommandExecutor.php on line 298

何卒よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問