1.composer安装selenium:
composer require facebook/webdriver
2.安装phantomjs
http://phantomjs.org/download.html 下载对应版本,并加入到环境变量
3.下载Selenium Standalone Server(http://www.seleniumhq.org/download/ )。
到命令提示符里启动以下命令(前提需要安装jdk,确保java命令能够运行)
java -jar selenium-server-standalone-2.50.0.jar
tip:最新版 selenium-server-standalone-3.13.0.jar 貌似放弃支持phantomjs了,所以用的低版本的
贴代码:
header("Content-Type: text/html; charset=UTF-8");
$host = 'http://localhost:4444/wd/hub'; // this is the default
$capabilities = DesiredCapabilities::phantomjs();
$driver = RemoteWebDriver::create($host, $capabilities, 5000);
$driver->get('https://www.zhihu.com/question/285353546/answer/443155679');
$ele = $driver->findElement(WebDriverBy::className('QuestionMainAction'));
$driver->executeScript("arguments[0].click();",[$ele]);
//翻一页
$js = "window.scrollTo(0,document.body.scrollHeight)"; //滚动至底部
$driver->executeScript($js);
$driver->takeScreenshot('test.png');
//关闭浏览器
$driver->quit();
可实现用户点击事件,然后下拉到底,整页截图。(chromedriver等其他无头浏览器也可以实现截图,但是截的是一个屏幕的,不是整个页面的,有大神实现是用拼接的方式实现的,其他方法还没有发现)
网友评论