首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用phantomjs在chrome浏览器中获取urls的屏幕截图

,可以通过以下步骤实现:

  1. 安装phantomjs:PhantomJS是一个无界面的浏览器,可以在命令行中执行网页操作。你可以从PhantomJS官方网站(https://phantomjs.org/)下载并安装适合你操作系统的版本。
  2. 编写脚本:创建一个JavaScript脚本,使用phantomjs的API来实现获取urls的屏幕截图功能。以下是一个示例脚本:
代码语言:javascript
复制
var page = require('webpage').create();
var urls = ['https://www.example.com', 'https://www.example2.com'];

urls.forEach(function(url) {
  page.open(url, function(status) {
    if (status === 'success') {
      page.render(url + '.png');
      console.log('Screenshot saved for ' + url);
    } else {
      console.log('Failed to load ' + url);
    }
    page.close();
  });
});

在这个示例中,我们使用了webpage模块创建了一个页面对象,然后遍历urls数组,依次打开每个URL,并将页面渲染为PNG格式的截图保存在本地。

  1. 运行脚本:在命令行中执行以下命令,运行脚本并获取屏幕截图:
代码语言:txt
复制
phantomjs script.js

其中,script.js是你编写的脚本文件名。

这样,phantomjs将会在chrome浏览器中打开每个URL,并将其屏幕截图保存在当前目录下。

注意:由于phantomjs已经停止维护,推荐使用更现代化的工具,如Puppeteer(https://pptr.dev/)来实现类似的功能。Puppeteer是一个由Google开发的Node.js库,提供了更多功能和更好的兼容性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

实现完整网页保存为图片方法

整体阐述 按照前面提出思路,一种简单业务处理场景可以抽象为如下模型: 主机服务器上部署一个服务, 从来源处获取到 url 信息, 然后请求此 url 内容并生成截图保存在文件服务器, 可以在数据库中保存此图片与...工程调用PhantomJS用法如下: JAVA实现 JAVA工程可以通过拼接命令并调用exe文件执行抓取操作来实现。...且高版本python selenium已经将PhantomJS标记为deprecated并推荐使用chrome headless方式来替代。...所谓headless模式,也即无UI模式,不打开chrome浏览器窗口情况下,在后台进行无界面处理。 下面介绍下在python通过chrome headless进行url全图保存实现方式。...headless方式进行截图时候,默认只截取当前显示屏幕区域。

2.6K10

orbital angular momentum_omnidirectional

安装Selenium Ubuntu下安装Selenium Selenium使用 浏览器支持  选择合适浏览器 PhantomJS Windows下安装PhantomJS 这里强烈建议使用迅雷下载浏览器下载速度太慢了...Selenium提供了多个函数用于定位有效数据 使用chrome查看网页源代码 获取百度搜索结果 Selunium提供了获取数据常用方法 SeleniumPhantomJS实战-获取代理 任务目标...获取cookie 使用Chrome或者FireFox登录网站,截图第一次请求request headers. 其中cookie和request是我们需要内容....JavaScript程序获取,Python对JavaScript支持不是太好,想用Python获取网站JavaScript返回数据,也能是模拟浏览器了。...本次目标 获取http://www.1kkk.com/漫画 获取数据思路 网页最后一页后还是有下一页按钮,不能通过这么来判断总页数,使用Selenium&PhantomJS解释JavaScript

1.1K60

使用 selenium 写多进程全网页截图工具,发现了 PhantomJS 截图 bug

不过,我使用 selenium 作为全网页截图过程,发现了 PhantomJS 一个“bug”,具体情况后面详细讲解。...urls.txt 文件 URL 和截图需要保存名称,最后返回一个元组,格式就是(picname,url)。...webshot(tup) 函数 这个函数就是这个工具最主要函数,所做事情是先读取文件,然后使用 selenium 去启动无头浏览器 PhantomJS 来进行整个网页截图。...driver = webdriver.PhantomJS() driver.maximize_window() 上面这两句就是使用 PhantomJS 浏览器来打开浏览器,并且把窗口最大化,之所以使用...PhantomJS 浏览器是因为据我了解,其他浏览器比如谷歌和火狐都只能但屏幕截图,无法做到整个网页截图

92420

Headless Chrome简介

Chrome 59开始搭载Headless Chrome。这是一种无需显示headless环境下运行 Chrome 浏览器方式。...使用Headless Chrome截图 要捕获页面的屏幕截图,请使用--screenshot 标志: chrome --headless --disable-gpu--screenshot https:...//www.baidu.com/ HeadlessChrome爬虫应用 由于存在大量网页是动态生成使用浏览器查看源代码之后,发现网页dom只有一个root元根元素和一堆js引用,根本看不到网页实际内容...Headless出现之前,主要流行PhantomJS这个库,原理是模拟成一个实际浏览器去加载网站。Headless Chome出现之后,PhantomJS地位开始不保。...毕竟Headless Chome本身是一个真正浏览器,支持所有chrome特性,而PhantomJS只是模拟,因此Headless Chome更具优势,下面是使用Python Selenium调用Headless

1.5K10

这种自带黑科技R包,请给我来一打

这个包底层需要使用PhantomJS浏览器,所以仍然需要你提前下载,你可以到这个网站(http://phantomjs.org/)手动下载,这个包下载之后,里面有一个下载PhantomJS内建函数webshot...为啥抓取那些完整长图,只有最顶部图片是加载完毕,后面都是只有框架和文字,没有图片显示呢,我猜这个还是因为异步加载缘故,即便是真人操纵浏览器浏览器也是根据实际鼠标动作或者窗口位置,实时更新当前屏幕内容...,而那些还没有滚动到页面位置,就只有页面框架,图片还没有触发更新动作,使用浏览器鼠标下拉动作时,我们也能明显感觉到有些图片从无到有的加载过程。...仔细对比会发现,使用普通截图工具(faststone截得)截图结果,因为是Chrome渲染,字体和布局效果更为逼真,但是清晰度不行(可能是工具限制),使用webshot截得看起来清晰度更好,但是里面的字体渲染失真...使用css表达式,提取出了网易云课堂主页,中间滚动广告位展示区。(广告位没有抓到,抓到了一个顶边菜单栏o(╯□╰)o) webshot还可以支持对输出截图进行简单压缩、裁剪!

1.4K170

Selenium&Chrome实战:动态爬取51job招聘信息

Selenium3.8版本以后,已经不支持PhanTomJS了,可以使用谷歌,火狐无头浏览器来代替PhanTomJS 使用chrome无头浏览器,需要下载谷歌驱动chromedriver.exe chromedriver.exe...与chrome(谷歌浏览器版本)对应关系表. ?...我chrome版本是:68 ? 下载chromedriver2.41 ? 下载完后,解压到桌面里面有个chromedriver.exe文件 ? Selenium设置使用Chrome无头浏览器 #!...browser = webdriver.Chrome(options=chrome_options) 使用Selenium&chrome无头浏览器爬取 ----->  51job招聘网站招聘信息 Selenium...城市编号,也就是说输入"北京+上海",实际上输入是:"010000,020000", 那这个城市编号怎么来,这个就需要去爬取51job弹出城市选择框那个页面了,页面代码里面有城市对应编号 获取城市编号

1.6K20

python使用selenium+chromedriver调用chrome截图

selenium使用时一直提醒换掉phantomjs 改用 chromeheadless模式,主要是因为phantomjs维护已经很少了,而chromeheadless模式越来越完善。...本来只是自己研究研究,踩了几个坑,想不到昨天线上截图服务器出了问题,初步判断是淘宝搞事,用js获取当前浏览器类型,直接不去请求数据了。 只好马上开始换用chrome,踩了很多坑,留下了悲伤泪水。...都是用虚拟屏幕,现在完全不需要了,headless模式登场 chrome_option = webdriver.ChromeOptions() chrome_option.add_argument('...,像我需求,载入了一段时间后还是想停止载入并截图 所以可以用一个非常神奇方式。...临时写个插件给浏览器加载,让浏览器100秒后停止运行js chrome_option.add_argument('--load-extension=' + os.getcwd() + '/workers

3.9K50

Python爬虫之chrome爬虫使用

chrome浏览器使用方法介绍 学习目标 了解 新建隐身窗口目的 了解 chromenetwork使用 了解 寻找登录接口方法 ---- 1 新建隐身窗口 浏览器中直接打开网站,会自动带上之前网站时保存...cookie,但是爬虫首次获取页面是没有携带cookie,这种情况如何解决呢?...使用隐身窗口,首次打开网站,不会带上cookie,能够观察页面的获取情况,包括对方服务器如何设置cookie本地 ? 2 chromenetwork更多功能 ?...可以发现在手机版,依然有参数,但是参数个数少一些,这个时候,我们可以使用手机版作为参考,下一节来学习如何分析js ---- 小结 使用隐身窗口主要目的是为了避免首次打开网站携带cookie问题...chromenetwork,perserve log选项能够页面发生跳转之后任然能够观察之前请求 确定登录地址有两种方法: 寻找from表单actionurl地址 通过抓包获取

1.8K21

Headless Testing入坑指南

●轻松模拟多个浏览器 非自动化测试流程,测试人员为了能在不同浏览器(不同内核、不同尺寸)上确认页面的表现与运行是否正常,不得不来回切换浏览器,移动端测试还不得不切换机型。...CasperJS专为PhantomJS而生,它提供了一个基本测试套件,它允许你运行完整功能测试,也允许你从Web页面获取数据。...Headless Chrome带来了由Chromium和Blink渲染引擎提供所有现代web平台功能。这是一种不需要在屏幕上打开窗口全新页面交互方式。...安装Puppeteer方法 下面的例子使用Puppeteer来对页面进行截屏。 下面的例子使用Puppeteer来对页面数据进行抓取。...通过无头测试,您可以生成网站截图和pdf文件,从网站上抓取内容,自动提交表单,并模拟键盘输入。 当与无头浏览器结合使用时,它允许你完全成熟浏览器做任何你可以做事情,而不需要浏览器

1.7K50

爬虫系列(9)爬虫多线程理论以及动态数据获取方法。

如何使用 爬虫使用多线程来处理网络请求,使用线程来处理URL队列url,然后将url返回结果保存在另一个队列,其它线程在读取这个队列数据,然后写到文件中去 3....但是我们有时候需要让它内嵌代码运行,所以我们可以用一个叫 PhantomJS 工具代替真实浏览器。...因为 PhantomJS 是一个功能完善(虽然无界面)浏览器而非一个 Python 库,所以它不需要像 Python 其他库一样安装,但我们可以通过Selenium调用PhantomJS来直接使用。...浏览器创建浏览器对象 driver = webdriver.PhantomJS() # 如果没有环境变量指定PhantomJS位置 # driver = webdriver.PhantomJS(executable_path...,来定位右侧滚动条位置,0是最上面,10000是最底部 以上方法Firefox和IE浏览器上上是可以,但是用Chrome浏览器,发现不管用。

2.3K30

Puppeteer 初探

很早很早之前,前端就有了对 headless 浏览器需求,最多应用场景有两个 UI 自动化测试:摆脱手工浏览点击页面确认功能模式 爬虫:解决页面内容异步加载等问题 Chrome headless...你可以浏览器手动完成大部分事情都可以使用Puppteer完成 比如: 生成页面的屏幕截图和PDF。 抓取SPA并生成预先呈现内容(即“SSR”)。 自动表单提交,UI测试,键盘输入等。...创建一个最新自动化测试环境。使用最新JavaScript和浏览器功能,直接在最新版本Chrome浏览器运行测试。 捕获您网站时间线跟踪,以帮助诊断性能问题。...iframe,然后根据 iframe 名字精确获取某个想要 iframe iframe.$('.srchsongst') 获取 iframe 某个元素 iframe.evaluate() 浏览器执行函数...$eval() 相当于 iframe 运行 document.queryselector 获取指定元素,并将其作为第一个参数传递 iframe.

2.6K20

使用Python爬取动态网页-腾讯动漫(Selenium)

好久没更新Python相关内容了,这个专题主要说是Python爬虫方面的应用,包括爬取和处理部分 上节我们说了如何获取动态网页jquery内容 [Python爬虫]使用Python爬取静态网页...Driver,例如Chrome,Firefox等,也可以使用一些headlessdriver,例如PhantomJS 具体请参加官网: http://selenium-python.readthedocs.io.../ 关于PhantomJS PhantomJS是一个无头(headless)WebKit javascript API 我们可以用它模拟浏览器操作,也可以用来截图 具体参加官网: http://phantomjs.org...Chrome下载 下载完成后可以放到系统环境变量,如: C:\Windows\System32 ?...注意事项: 建议先用Chrome测试OK,再改用PhantomJS执行 ChromePhantomJS实际向下翻页时有差异,需测试后调节循环次数 为防止被ban,每次爬取采用了随机延迟方法 只能爬取免费内容

1.9K10

phantomJs之殇,chrome-headless之生 | 洞见

技术雷达快讯:自2017年以来,Chrome用户可以选择以headless模式运行浏览器。此功能非常适合运行前端浏览器测试,而无需屏幕上显示操作过程。...Headless Chrome浏览器测试运行速度要快得多,而且行为上更像一个真正浏览器,虽然我们团队发现它比PhantomJS使用更多内存。...对,就是没有页面的浏览器。多用于测试web、截图、图像对比、测试前端代码、爬虫(虽然很慢)、监控网站性能等。 ---- 为什么要使用headless测试?...Headless ChromeChrome 浏览器无界面形态,可以不打开浏览器前提下,使用所有Chrome支持特性,命令行运行你脚本。...前端测试改进 以目前项目来说,之前前端单元测试以及组件测试是用karmaphantomjs运行,非常不稳定,远端CI上运行时经常会莫名其妙挂掉,也找不出来具体原因,自从Headless Chrome

1.7K60

常用selenium浏览器配置

2.修改浏览器窗口大小 有时候PhantomJS不修改浏览器不修改窗口大小就会有意外惊喜(报错!),修改方法也很简单,建议使用PhantomJS访问网页时都先加上。.../") #利用javascript方法查看user-agent,须在调用get()后使用。...PhantomJS无图模式 PhantomJS官网给出了一些PhantomJS设置参数(点我查看)。...亲测都有效,按理说根据PhantomJS参数说明直接修改service_argsproxy参数就能实现ip代理,代码也比较精简易读,不过实际运行时无法返回正确信息。...driver.add_cookie({'name':'AAA', 'value':'BBB'}) 浏览器显示百度首页后,程序卡在input,我们手动登录下,然后回程序界面随便给个输入,即获得了新cookie

2.4K20

啥是无头浏览器,都能干啥?一文说清楚

一个无头测试环境,你可以编写和执行脚本: 测试基本流程和可选流程 模拟单击链接和按钮 自动填写和提交表格 测试SSL性能 尝试不同服务器负载 获取关于页面响应时间报告 获取有用网站代码 截屏查看结果...PhantomJS 复杂性现代internet环境很常见,而PhantomJS构建就是为了使用基本命令行测试来处理这一切。...可供使用无头选项: 测试页面导航 模拟用户行为 使用断言测试 截图 PhantomJS另一个好处是它开源状态。该程序于2011年发布,目前仍在由专门开发人员进行更新。...使用HtmlUnit,你可以Chrome、Firefox 38及以后版本、Edge、IE8和IE11创建脚本化用例。...格式提供渲染信息,还允许你对结果进行屏幕截图

1.4K10

React中使用ajax获取数据移动浏览器不显示问题

在做一个小项目,页面加载后使用ajax读取本地REST数据,保存在状态,稍后form选择下拉框显示,代码如下: 150 componentDidMount() { 151...,运行时电脑端谷歌、火狐浏览器访问,数据都能加载,在手机端使用谷歌浏览器访问,选择下拉框始终为空,这说明手机端浏览器ajax获取数据时出了问题。...,即在页面加载完成后才执行某个函数,如果函数要操作 DOM,页面加载完成后再执行会更安全,所以使用 jQuery 时这样写法很常见。...$(document).ready() 里代码是页面内容都加载完才执行,如果把代码直接写到script标签里,当页面加载完这个script标签就会执行里边代码了,此时如果你标签里执行代码调用了当前还没加载过来代码或者...可能原因是手机端刘览器与电脑端浏览器页面加载处理脚本时间不同,前者是未等页面加载结束即执行jquery脚本,后者则相反,所以后者不需$(function(){}也可正常显示。

5.9K20

走过路过不容错过,Python爬虫面试总结

Selenium 自己不带浏览器,不支持浏览器功能,它需要与第三方浏览器结合在一起才能使用。但是我们有时候需要让它内嵌代码运行,所以我们可以用一个叫 PhantomJS 工具代替真实浏览器。...相比传统Chrome或 Firefox 浏览器等,资源消耗会更少。...phantomJS爬数据比较慢,可以选择多线程。如果运行时候发现有的可以运行,有的不能,可以尝试将 phantomJS 改成 Chrome。 3....对部分数据进行加密,可以使用selenium进行截图,饭后使用python自带 pytesseract库进行识别,但是比较慢最直接方法是找到加密方法进行逆向推理。 5. 分布式爬虫原理?...从start_urls获取第一批url并发送请求,请求由引擎交给调度器入请求队列,获取完毕后,调度器将请求队列里请求交给下载器去获取请求对应响应资源,并将响应交给自己编写解析方法做提取处理:

1.4K21
领券