弱弱问一下, PHP + Selenium+chromedrive 怎样将网页上的图片保存到硬盘?

2017-10-30 17:45:09 +08:00
 gdtv
$driver = RemoteWebDriver::create($host,$capabilities);
$driver->get('http://xxx.com/post1.html');
$images = $driver->findElements(WebDriverBy::cssSelector(".图片 classname"));
foreach($images as $image){
$urls[] = $image->getAttribute('src');
}

这样获取到所有图片的$urls,然后怎样将这些图片保存到硬盘呢?
1935 次点击
所在节点    PHP
6 条回复
wq2016
2017-10-30 17:56:18 +08:00
wget
aru
2017-10-30 18:04:57 +08:00
图片如果没有做特殊处理,拿到 url 后就可以通过 php curl 扩展将它们下载到本地
或者看看这个文章
http://www.software-testing-tutorials-automation.com/2015/01/download-and-save-image-using-selenium.html
gouchaoer
2017-10-30 19:11:41 +08:00
有 2 个方法,拿到图片的 url,然后用 guzzle 之类的 httpclient 下载,第二就是用截屏保存图片然后根据图片的区域来人工截图
mingyun
2017-10-30 22:36:27 +08:00
原来 PHP 跟 python 一样也有 Selenium

简单点 file_put_contents('xxx.jpg',file_get_contents($url));
gdtv
2017-10-30 22:38:00 +08:00
@gouchaoer
@mingyun
谢谢。你们两位大神说的方法我也考虑过,但是对于要登录的网站,file_put_contents 和 guzzle 之类的 httpclient 需要共享 chromedrive 的 cookie 才行,要去处理 cookie 有点麻烦
gouchaoer
2017-10-31 00:09:12 +08:00
@gdtv selenium 的 api 可以拿到 cookie 的,你把 cookie 放到 guzzle 里就完了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/402018

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX