服务截图
saas的Python项目详细描述
SaaS-服务截图
安装
要求
保险丝
什么是保险丝?从融合wikipedia页面 < Buff行情>
用户空间中的文件系统(fuse)是类unix计算机操作系统的软件接口,允许非特权用户创建自己的文件系统,而无需编辑内核代码。这是通过在用户空间中运行文件系统代码来实现的,而fuse模块只提供到实际内核接口的"桥梁"。
fuse用于安装一个合成文件系统,以读取给定给saas的url的照片。saas用文件和目录动态地填充用户空间文件系统。fuse是这个组件的一个不错的选择,因为它可以很容易地集成到几乎任何工作流中,请在api部分中阅读更多关于这个组件的信息。
弹性搜索
elasticsearch用作saas的存储后端。有关存储的详细信息,请参见存储部分
imagemagick
imagemagick用于优化保存到磁盘的图像文件。这是一个可选依赖项,因为它仅在使用--optimize storage
标志时使用。
Linux
1.使用Docker安装ElasticSearch
2.安装Firefox和Geckodriver
3。安装ImageMagick(可选) 4。安装SaaS 1.安装MacOS保险丝 从官方网站(推荐)或使用自制的
2.安装ElasticSearch
3。安装Firefox和Geckodriver
每次运行SaaS时,您必须确保有一个ElasticSearch实例正在运行,并且SaaS可以连接到Available。 爬虫程序是一个很有用的工具,可以找到新的网址来获取图片。它可以配置为运行wild并对它遇到的任何域进行爬网,或者保持在输入文件中url所属的域中。 使用 因为挂载的文件系统是只读文件系统,所以只需删除目前无法从文件系统中取出照片。 至少现在,清除数据目录和索引的最佳方法是使用 可以使用 默认情况下,相机会尝试拍摄全屏截图。这意味着它可以计算出页面的高度,并相应地调整相机的高度。全屏截图的时间要长得多,尤其是在图像密集的网站上。 saas使用两种类型的存储。用于存储照片文件和弹性搜索照片元数据和URL的常规目录。 弹性搜索实例由saas配置,具有三个索引 当saas响应目录列表时,它只需要查询elasticsearch 通过从源代码克隆saas来安装它 camera模块使用selenium呈现页面。为了提高SaaS的性能,SaaS使用ublock origin来阻止广告。为了更方便地访问更多的网页,SaaS使用来绕过弹出窗口和GDPR Consent表单。许多网站还采用付费墙的做法,为他们的一些内容,然而,许多网站让他们的网站开放给来自搜索引擎和社交媒体网站的用户。因此,saas有一个小的自定义的firefox扩展来重写firefox发出的所有http请求,使其包含头 从gorhill/ublock releases中下载最新的ublock.xpi,并替换 使用Firefox从https://www.i-dont-care-about-cookies.eu/" rel="nofollow">https://www.i-dont-care-about-cookies.eu/下载并安装最新版本。在firefox的extensions目录中找到 对源文件进行压缩存档 使用fuse的主要原因是saas的api是文件系统。所有可以与文件系统交互的东西都可以与saas交互。几乎每种编程语言都附带了对文件系统的简单访问,因此在任何环境中的集成都与对文件系统的读写一样简单。 例如,通过http接口公开saas可以像sta一样简单像下面这样的超级简单节点服务(在生产中肯定比这更彻底)。 这将允许通过调用如下服务添加要爬网的新url 启动一个简单的python web服务器可以允许遍历saas文件系统 这是集成/扩展SaaS的百分之二的方法。 SaaS设计用于运行多台计算机。在一个集群中添加的saas节点数量实际上是无限的,它们只需要一个公共的elasticsearch实例或集群,以及一个公共的数据目录。ElasticSearch以其可扩展性而闻名,例如,数据目录可以是它们共享的网络驱动器、Amazon EFS或任何其他在机器之间共享驱动器的方式。 因为集群中的所有节点共享相同的索引和数据目录,所以它们都可以读取集群作为一个整体产生的图像。节点也可以自由加入和离开群集,而不会造成任何长时间的数据丢失。 对性能影响最大的是拍摄图像重的站点或使用大的视区大小。固定的视窗大小是一个很好的优化性能的选择,几乎没有上限,一个网站可以有多大的垂直。小报网站或无限滚动网站的屏幕截图大小可轻松达到25-50 MB。 查看指南最大化SaaS吞吐量了解如何在AWS上部署大型SaaS节点群集并优化性能的详细指南。 有关测试SaaS的一些好例子,请参见示例/。 在某些情况下,例如致命的崩溃,挂载的文件系统可能不会自动卸载。另外,如果其他进程当前正在从文件系统读取数据,则文件系统将无法卸载。 如果遇到此问题,请运行 麻省理工学院版权所有Ludwig Kristofersson 有关详细信息,请参见许可文件
sudo docker pull docker.elastic.co/elasticsearch/elasticsearch:6.5.4
sudo apt-get install firefox
wget https://github.com/mozilla/geckodriver/releases/download/v0.23.0/geckodriver-v0.23.0-linux64.tar.gz
tar -xvzf geckodriver-v0.23.0-linux64.tar.gz
chmod +x geckodriver
sudo mv geckodriver /usr/bin/
sudo apt-get install imagemagick
# Make sure you have Python 3.7 installed!
python --version
# Python 3.7.2
pip install saas
saas --version
# saas 1.1.3.1
Mac操作系统
brew update
brew tap homebrew/cask
brew cask install osxfuse
brew install elasticsearch
sudo docker pull docker.elastic.co/elasticsearch/elasticsearch:6.5.4
1
用法
入门
启动ElasticSearch
如果使用Docker
sudo docker pull docker.elastic.co/elasticsearch/elasticsearch:6.5.4
2
如果路径中存在二进制
sudo docker pull docker.elastic.co/elasticsearch/elasticsearch:6.5.4
3
拍摄单个url的照片
sudo docker pull docker.elastic.co/elasticsearch/elasticsearch:6.5.4
4
使用爬虫程序
留在域中
--stay at domain
标记,爬网程序将丢弃不属于同一域的任何域,因为该域与在其上找到的页不属于同一域。sudo docker pull docker.elastic.co/elasticsearch/elasticsearch:6.5.4
5
重置数据
--clear data dir
和--clear elasticsearch
选项
sudo docker pull docker.elastic.co/elasticsearch/elasticsearch:6.5.4
6
设置视区大小
--viewport width
和--viewport height
选项来调整相机视口。选项的完整列表
sudo docker pull docker.elastic.co/elasticsearch/elasticsearch:6.5.4
7
储存
弹性搜索
已爬网
此索引保存爬网程序已访问的URL、HTTP响应代码和任何锁(意味着任何摄影师线程正在拍摄该URL的照片)未绘制的
此索引包含爬虫程序已访问的网页中的刮取的URL照片
此索引包含照片元数据、文件大小、捕获位置、文件名等。数据目录
photos
索引。只有在发出读取请求时,才会从数据目录中获取实际的文件内容。数据目录保存原始照片数据,每个照片都有一个唯一的id。此目录的默认路径是
~/.saas data dir
sudo docker pull docker.elastic.co/elasticsearch/elasticsearch:6.5.4
8
构建
sudo docker pull docker.elastic.co/elasticsearch/elasticsearch:6.5.4
9
Firefox扩展
referer:https://google.com
-这将允许访问更多的web内容。更新ublock原点
extensions/
目录中的版本。更新idcac
.xpi
文件,在macos上这是~/library/application support/firefox/profile s/[profile]/extensions/
。将.xpi
文件复制到extensions/
目录。引用头
sudo apt-get install firefox
wget https://github.com/mozilla/geckodriver/releases/download/v0.23.0/geckodriver-v0.23.0-linux64.tar.gz
tar -xvzf geckodriver-v0.23.0-linux64.tar.gz
chmod +x geckodriver
sudo mv geckodriver /usr/bin/
0
运行测试套件
sudo apt-get install firefox
wget https://github.com/mozilla/geckodriver/releases/download/v0.23.0/geckodriver-v0.23.0-linux64.tar.gz
tar -xvzf geckodriver-v0.23.0-linux64.tar.gz
chmod +x geckodriver
sudo mv geckodriver /usr/bin/
1
运行类型检查器
sudo apt-get install firefox
wget https://github.com/mozilla/geckodriver/releases/download/v0.23.0/geckodriver-v0.23.0-linux64.tar.gz
tar -xvzf geckodriver-v0.23.0-linux64.tar.gz
chmod +x geckodriver
sudo mv geckodriver /usr/bin/
2
API
sudo apt-get install firefox
wget https://github.com/mozilla/geckodriver/releases/download/v0.23.0/geckodriver-v0.23.0-linux64.tar.gz
tar -xvzf geckodriver-v0.23.0-linux64.tar.gz
chmod +x geckodriver
sudo mv geckodriver /usr/bin/
3
sudo apt-get install firefox
wget https://github.com/mozilla/geckodriver/releases/download/v0.23.0/geckodriver-v0.23.0-linux64.tar.gz
tar -xvzf geckodriver-v0.23.0-linux64.tar.gz
chmod +x geckodriver
sudo mv geckodriver /usr/bin/
4
sudo apt-get install firefox
wget https://github.com/mozilla/geckodriver/releases/download/v0.23.0/geckodriver-v0.23.0-linux64.tar.gz
tar -xvzf geckodriver-v0.23.0-linux64.tar.gz
chmod +x geckodriver
sudo mv geckodriver /usr/bin/
5
性能和可扩展性
示例
已知问题
sudo apt-get install firefox
wget https://github.com/mozilla/geckodriver/releases/download/v0.23.0/geckodriver-v0.23.0-linux64.tar.gz
tar -xvzf geckodriver-v0.23.0-linux64.tar.gz
chmod +x geckodriver
sudo mv geckodriver /usr/bin/
6
许可证
推荐PyPI第三方库