1、存在问题

same origin policy(同源策略)

页面中的Javascript只能读取,访问同域的网页。这里需要注意的是,Javascript自身的域定义和它所在的网站没有任何关系,只和该Javascript代码所嵌入的文档的域有关。如以下示例代码:

<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>This is a webpage came from http://localhost:8000</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
</head>
<body>
<div id="test">123</div>
<script type="text/javascript">
console.log($('#test').text());
</script>
</body>
</html>

该HTML文档来源于http://localhost:8000,这意味着它的域为http://localhost:8000(域和端口也相关),虽然页面中的jquery加载自ajax.googleapis.com,然而该JQuery的域只和它所处的HTML文档的域有关,从而可以访问该HTML文档的属性,因而以上代码可以正常运行。
附:使用上述代码的原因是,开发者将通用的Javascript库(如JQuery)地址指向公共相同的URL。当用户加载过一次该JS后,以后的加载将都通过浏览器缓存,从而加快了页面加载速度。

从这个角度看问题,假如提问者所知的远端指的是互联网上任意的页面,那么不能实现你所期望的功能;如果远端指的是提问者你所拥有控制权的网站,请看下面的Relaxing the same-origin policy;

Relaxing the same-origin policy

  1. Document.domain:用于子域名的情况。对于多个windows(一个页面有多个iframe),通过设置document.domain的值为相同的域,使得Javascript可以访问异域window;
  2. Cross-origin resource sharing:通过在服务器端返回头增加Access-Control-

Allow-Origin,该头部包含了所有允许访问的域的列表。支持的浏览器将允许本页面Javascript访问这些域;

  1. cross-document messaging:该方式和域无关,不同文档的Javascript可以相互发送接受消息而不受限制,然而不能主动趣读取,调用另一个文档的方法属性;

如果提问者拥有远端页面的控制权,可以尝试第二种方法。

服务器端抓取

根据提问者的需求,比较可行的方案应该是在服务器端进行处理。借助(http://phantomjs.org/),你可以使用Javascript语法在服务器端进行DOM操作,同时你可以使用nodejs进行进一步的分析等,当然,你也可以使用Python, php ,Java语言进行后续操作。

结论:

(1)服务端将网页的跨域限制打开;

(2)使用服务度端请求页面

前端js 爬取 获取网页的更多相关文章

  1. Python 爬取单个网页所需要加载的地址和CSS、JS文件地址

    Python 爬取单个网页所需要加载的URL地址和CSS.JS文件地址 通过学习Python爬虫,知道根据正式表达式匹配查找到所需要的内容(标题.图片.文章等等).而我从测试的角度去使用Python爬 ...

  2. node.js爬取数据并定时发送HTML邮件

    node.js是前端程序员不可不学的一个框架,我们可以通过它来爬取数据.发送邮件.存取数据等等.下面我们通过koa2框架简单的只有一个小爬虫并使用定时任务来发送小邮件! 首先我们先来看一下效果图 差不 ...

  3. 使用htmlparse爬虫技术爬取电影网页的全部下载链接

    昨天,我们利用webcollector爬虫技术爬取了网易云音乐17万多首歌曲,而且还包括付费的在内,如果时间允许的话,可以获取更多的音乐下来,当然,也有小伙伴留言说这样会降低国人的知识产权保护意识,诚 ...

  4. 使用htmlparser爬虫技术爬取电影网页的全部下载链接

    昨天,我们利用webcollector爬虫技术爬取了网易云音乐17万多首歌曲,而且还包括付费的在内,如果时间允许的话,可以获取更多的音乐下来,当然,也有小伙伴留言说这样会降低国人的知识产权保护意识,诚 ...

  5. Python:将爬取的网页数据写入Excel文件中

    Python:将爬取的网页数据写入Excel文件中 通过网络爬虫爬取信息后,我们一般是将内容存入txt文件或者数据库中,也可以写入Excel文件中,这里介绍关于使用Excel文件保存爬取到的网页数据的 ...

  6. python爬取某个网页的图片-如百度贴吧

    python爬取某个网页的图片-如百度贴吧 作者:vpoet mail:vpoet_sir@163.com 注:随意copy,不用告诉我 #coding:utf-8 import urllib imp ...

  7. python使用requests库爬取网页的小实例:爬取京东网页

    爬取京东网页的全代码: #爬取京东页面的全代码 import requests url="https://item.jd.com/2967929.html" try: r=requ ...

  8. 爬取指定网页的源代码显示在GUI中

    建立一个GUI图形界面用来用来输入网址和代码显示的区域 #encoding=utf-8 __author__ = 'heng' #创建一个可以抓取输入网址源代码的GUI from urllib2 im ...

  9. R语言爬取动态网页之环境准备

    在R实现pm2.5地图数据展示文章中,使用rvest包实现了静态页面的数据抓取,然而rvest只能抓取静态网页,而诸如ajax异步加载的动态网页结构无能为力.在R语言中,爬取这类网页可以使用RSele ...

随机推荐

  1. 【重大更新】Qlik Sense September 2018重磅发布(附下载)

    作为数据分析领域领导者,Qlik,始终致力于通过产品创新来帮助企业客户撬动数据力量.近日,Qlik Sense September 2018如期而至,不仅对原有版本进行了众多优化,还发布了一系列能够提 ...

  2. WPF应用打包流程

    1,安装工程模板插件Microsoft Visual Studio Installer Projects https://marketplace.visualstudio.com/items?item ...

  3. Solr字段类型

    一.一般属性 1.name fieldType的名称.该值用于字段定义中的类型属性,强烈建议名称仅包含字母数字和下划线,不能以数字开头[非强制]. 2.class 用于存储和索引此类型数据的类名.可以 ...

  4. ETL讲解

    ETL是将业务系统的数据经过抽取.清洗转换之后加载到数据仓库的过程,目的是将企业中的分散.零乱.标准不统一的数据整合到一起,为企业的决策提供分析依据. ETL是BI项目重要的一个环节. 通常情况下,在 ...

  5. Docker搭建私用仓库

    搭建私有仓库 # 1.查找registry,官方的私用仓库镜像 docker search registry # 2.下载私有仓库镜像 docker pull registry # 3.创建并后台运行 ...

  6. thinkphp5.x命令执行漏洞复现及环境搭建

    楼主Linux环境是Centos7,LAMP怎么搭不用我废话吧,别看错了 一.thinkphp5.X系列 1.安装composer yum -y install composer 安装php拓展 yu ...

  7. Welcome to GnuPG 2.2

    Welcome to GnuPG 2.2 Installation Instructions Double click the Install package to install GnuPG 2.2 ...

  8. Codeforces Round #574 (Div. 2)题解

    比赛链接 传送门 A题 题意 \(n\)个人每个人都有自己喜欢喝的\(vechorka\)口味,现在给你\(\lceil n/2\rceil\)箱\(vechorka\),每箱有两瓶,问最多能有多少个 ...

  9. linux 服务器配置 ASF 云挂卡

    关于社区打不开:https://github.com/zyfworks/AnotherSteamCommunityFix 下载asf:https://github.com/JustArchi/Arch ...

  10. Linux/Raspbian 每个目录用途说明

    本文转自无聊小博,很多刚接触树莓派/Linux 的同学会在给树莓派安装.卸载.配置软件时,软件和配置文件等存放在哪儿产生疑惑.也会遇到诸如“磁盘分区”.U盘挂载等涉及到的目录路径问题.Linux 的目 ...