普通浏览器和无头浏览器的区别
The difference between normal and headless browser
我经常遇到 PhantomJS to run headless browser
, headless browser
.
正常(用户调用或调用常规 Selenium webdriver 代码)和无头浏览器有什么区别?
除此之外,我想澄清一下这些浏览器功能:
- headers
- 本地存储
- cookie
根据定义,无头浏览器是没有图形用户界面 (GUI) 的 Web 浏览器。
通常,与网站的交互是使用带有 GUI 的浏览器通过鼠标和键盘完成的,而大多数无头浏览器提供 API 来操作 page/DOM、下载资源等。因此,改为例如,实际上用鼠标单击一个元素,无头浏览器允许您通过代码单击一个元素。
使用 PhantomJS 与页面交互的示例:
page.evaluate(function() {
//Fill in form on page
document.getElementById('Name').value = 'John Doe';
document.getElementById('Email').value = 'john.doe@john.doe';
//Submit
$('#SubmitButton').click();
});
Headers,本地存储和 Cookie 在大多数无头浏览器中的工作方式与在具有 GUI 的常规浏览器中的工作方式相同(如果已实现)。 PhantomJS 和 HtmlUnit 支持所有这些功能。
在 PhantomJS 中,您还可以添加自己的 cookie。例如,您可以从 chrome 复制一个 cookie,并在运行时以编程方式将其添加到 phantomjs 浏览器。它将自动添加到特定域的页面请求中。
在加载页面之前将 cookie 添加到页面
var webPage = require('webpage');
var page = webPage.create();
phantom.addCookie({
'name' : 'Valid-Cookie-Name', /* required property */
'value' : 'Valid-Cookie-Value', /* required property */
'domain' : 'localhost',
'path' : '/', /* required property */
'httponly' : false,
'secure' : false,
'expires' : (new Date()).getTime() + (1000 * 60 * 60) /* <-- expires in 1 hour */
});
page.open('localhost', function (status) {
//Cookie automatically added to request headers for localhost
...
});
有关使用 PhantomJS 的一些可运行示例,请参阅 The phantomjs examples page
我经常遇到 PhantomJS to run headless browser
, headless browser
.
正常(用户调用或调用常规 Selenium webdriver 代码)和无头浏览器有什么区别?
除此之外,我想澄清一下这些浏览器功能:
- headers
- 本地存储
- cookie
根据定义,无头浏览器是没有图形用户界面 (GUI) 的 Web 浏览器。
通常,与网站的交互是使用带有 GUI 的浏览器通过鼠标和键盘完成的,而大多数无头浏览器提供 API 来操作 page/DOM、下载资源等。因此,改为例如,实际上用鼠标单击一个元素,无头浏览器允许您通过代码单击一个元素。
使用 PhantomJS 与页面交互的示例:
page.evaluate(function() {
//Fill in form on page
document.getElementById('Name').value = 'John Doe';
document.getElementById('Email').value = 'john.doe@john.doe';
//Submit
$('#SubmitButton').click();
});
Headers,本地存储和 Cookie 在大多数无头浏览器中的工作方式与在具有 GUI 的常规浏览器中的工作方式相同(如果已实现)。 PhantomJS 和 HtmlUnit 支持所有这些功能。
在 PhantomJS 中,您还可以添加自己的 cookie。例如,您可以从 chrome 复制一个 cookie,并在运行时以编程方式将其添加到 phantomjs 浏览器。它将自动添加到特定域的页面请求中。
在加载页面之前将 cookie 添加到页面
var webPage = require('webpage');
var page = webPage.create();
phantom.addCookie({
'name' : 'Valid-Cookie-Name', /* required property */
'value' : 'Valid-Cookie-Value', /* required property */
'domain' : 'localhost',
'path' : '/', /* required property */
'httponly' : false,
'secure' : false,
'expires' : (new Date()).getTime() + (1000 * 60 * 60) /* <-- expires in 1 hour */
});
page.open('localhost', function (status) {
//Cookie automatically added to request headers for localhost
...
});
有关使用 PhantomJS 的一些可运行示例,请参阅 The phantomjs examples page