浏览器抓取网页(长沙会计培训--DOM属性)

优采云 发布时间: 2022-04-14 04:23

  浏览器抓取网页(长沙会计培训--DOM属性)

  2021-11-01

  1、窗口

  获取浏览器窗口大小,window对象有innerWidth和innerHeight属性,可以获取浏览器窗口的内部宽度和高度。内部宽度和高度是指去除菜单栏、工具栏和边框等占位符元素后用于显示网页的净宽度和高度。

  对应的还有一个outerWidth和outerHeight属性,可以获取浏览器窗口的整个宽高

  2、导航器

  navigator 对象表示有关浏览器的信息。最常用的属性包括:

  3、屏幕

  screen对象表示屏幕的信息,常用的属性有:

  4、位置

  location 对象表示当前页面的 URL 信息。

  可以通过 location.href 获取。要获取 URL 各部分的值,可以编写:

  location.protocol; // 'http'

location.host; // 'www.example.com'

location.port; // '8080'

location.pathname; // '/path/index.html'

location.search; // '?a=1&b=2'

location.hash; // 'TOP'

要加载一个新页面,可以调用location.assign()。如果要重新加载当前页面,调用location.reload()方法非常方便。

5、document

  文档对象代表当前页面。由于 HTML 在浏览器中以 DOM 的形式表示为树结构,因此文档对象是整个 DOM 树的根节点。

  文档的title属性是从HTML文档中的xxx读取的,但是可以动态改变:

  6、DOM 操作

  insertBefore 如果我们想在指定位置插入子节点怎么办?可以使用parentElement.insertBefore(newElement, referenceElement);,子节点会被插入到referenceElement之前。

  7、操作文件

  文件 API

  由于 JavaScript 对用户上传的文件的操作非常有限,尤其是无法读取文件内容,因此很多需要操作文件的网页不得不使用 Flash 等第三方插件。

  随着 HTML5 的普及,新的 File API 允许 JavaScript 读取文件内容并获取更多文件信息。

  HTML5的File API提供了两个主要的对象,File和FileReader,可以获取文件信息和读取文件。

  var

fileInput = document.getElementById('test-image-file'),

info = document.getElementById('test-file-info'),

preview = document.getElementById('test-image-preview');

// *敏*感*词*change事件:

fileInput.addEventListener('change', function () {

// 清除背景图片:

preview.style.backgroundImage = '';

// 检查文件是否选择:

if (!fileInput.value) {

info.innerHTML = '没有选择文件';

return;

}

// 获取File引用:

var file = fileInput.files[0];

// 获取File信息:

info.innerHTML = '文件: ' + file.name + '

' +

'大小: ' + file.size + '

' +

'修改: ' + file.lastModifiedDate;

if (file.type !== 'image/jpeg' && file.type !== 'image/png' && file.type !== 'image/gif') {

alert('不是有效的图片文件!');

return;

}

// 读取文件:

var reader = new FileReader();

reader.onload = function(e) {

var

data = e.target.result; // 'data:image/jpeg;base64,/9j/4AAQSk...(base64编码)...'

preview.style.backgroundImage = 'url(' + data + ')';

};

// 以DataURL的形式读取文件:

reader.readAsDataURL(file);

});

  8、AJAX

  同源政策,

  JavaScript 发送 AJAX 请求时,URL 的域名必须与当前页面完全相同。

  完全一致是指域名应该相同(和不同),协议应该相同(http和https不同),端口号应该相同(默认为:80端口,不同于:8080)

  解决跨域

  一种是通过Flash插件发送HTTP请求。这种方法可以绕过浏览器的安全限制,但必须安装Flash并与Flash交互。但是Flash使用起来很麻烦,现在也越来越少用了。

  第二种是通过在同源域名下设置代理服务器进行转发,JavaScript负责将请求发送到代理服务器:

  '/proxy?url=http://www.sina.com.cn'

  然后代理服务器返回结果,从而符合浏览器的同源策略。这种方法的问题在于它需要在服务器端进行额外的开发。

  第三种方式叫做JSONP,它有一个限制,只能使用GET请求,并且需要返回JavaScript。这种方式的跨域其实就是使用浏览器允许跨域引用JavaScript资源:(动态插入脚本标签)

  相当于动态读取外域的JavaScript资源,最后等待接收回调;

  JSONP的原理是动态添加script标签,将接口地址与定义好的回调函数拼接起来,赋值给script标签的src属性。插入成功后,会调用回调函数,返回接口请求的数据。定义好的回调函数里面处理请求的结果

  成为CORS的第四种方式

  如果浏览器支持 HTML5,那么你可以一劳永逸地使用新的跨域策略:CORS。CORS 代表 Cross-Origin Resource Sharing,即如何按照 HTML5 规范定义的跨域访问资源。

  对方服务器是否愿意为你设置一个正确的Access-Control-Allow-Origin,只要响应头Access-Control-Allow-Origin是,或者*,跨域请求就可以成功

  9、承诺

  这种链式的好处是首先统一执行 AJAX 逻辑,不管结果如何处理,然后根据结果是成功还是失败,在某个时间点调用成功或失败函数。未来。

  古人说:“君子许诺一千块钱”,而这个“许诺将来执行”的对象在 JavaScript 中称为 Promise 对象。

  Promise 有多种开源实现,在 ES6 中标准化,浏览器直接支持

  可以看出,Promise 最大的优势在于,在异步执行的过程中,执行代码和处理结果的代码是明确分离的。

  分类:

  技术要点:

  相关文章:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线