如何截取指定网站的截图?

问题描述 投票:0回答:4

如果我有 google fastflip 等网站的网址列表,我想知道捕获屏幕截图的技术。此类任务需要什么技术或技巧。如果这项技术可以在 Rails 中使用那就太好了。

谢谢

screen-scraping screenshot capture
4个回答
1
投票

您需要一个 HTML 渲染引擎
最简单的方法是使用浏览器插件来完成该任务。

看看这个:创建网站截图的 15 种方法


1
投票

我一直在使用这个优秀的 Firefox 插件 Grab Them All https://addons.mozilla.org/en-US/firefox/addon/7800/ 这是作者同样优秀的 Screengrab 插件的一个版本。

“全部抓取”允许您将浏览器指向 URL 列表,然后会在指定目录中为您生成所有屏幕截图。它适用于大多数网站。

但是,我正在尝试生成 Google 地图 URL 的屏幕截图,但目前对我来说不起作用,因为这些页面不是标准页面 - 它们使用框架等。但对于大多数用途来说,上述内容都很棒 - 超级快速且易于设置。希望有帮助。


1
投票

嘿,我正在使用无头网络浏览器和 Xvfb。首先,安装软件包依赖项,例如 Ubuntu:

sudo apt-get install xvfb imagemagick x11-apps

然后使用 sudo 对某些“无人用户”运行下面的 shellcript,如下所示:

/usr/bin/sudo -u nobody /path/screengrab.sh www.ibm.com 34344 >>/tmp/screengrab.log 2>&1

您可能需要调整裁剪等。

#!/bin/bash

rm -rf /home/nobody/.mozilla/

XAUTHORITY=

Xvfb :$2 -pixdepths 32 -screen 0 1024x1024x24 >/dev/null 2>&1 &
XPID=$!

sleep 1

firefox -width 2000 -height 1024 --display :$2 http://$1 &
FPID=$!

sleep 6
xwd -display :$2 -root -out /tmp/$2-$$.xwd

convert /tmp/$2-$$.xwd /u0/screengrabs/$1.png # Cache
convert -resize 300x300 /tmp/$2.xwd /tmp/$2-$$.png
convert -crop 287x248+0+29 /tmp/${2}-$$.png /tmp/${2}2-$$.png

mkdir -p /home/je/www/domaintool.se/docs/images/$1
cp /tmp/${2}2-$$.png /home/je/www/domaintool.se/docs/images/$1/`date +%Y%m%d`.png
rm -f /tmp/$2-$$.png /tmp/$2-$$.xwd /tmp/${2}2-$$.png

kill $XPID >/dev/null 2>&1
kill $FPID >/dev/null 2>&1

-1
投票

感谢您提供内容丰富的文章。 Unogeeks是顶级的Oracle Fusion技术培训机构,提供最好的 Oracle Fusion技术培训

© www.soinside.com 2019 - 2024. All rights reserved.