如何抓取页面里的script标签包括里面的内容

如何抓取页面里的script标签包括里面的内容,第1张

import re,urllib2

print(('\n'+'-'16+'\n')join([i for i in refindall(r'<script>()</script>', urllib2urlopen('>

1、搭建服务器做代理捉取跨域请求返回的数据,本地应用页面的ajax请求建立的代理服务器就能间接的实现这样的需求。但是此种做法较为复杂,不建议使用;

2、使用jsonp跨域访问,这种方法是较为普遍的解决方案,其实现原理是:HTML的<script>标签是可以突破同源策略从其他来源获取数据,所以可以通过<script>标签引入jsonp文件,然后通过一系列JS *** 作获取数据。

具体实现步骤如下:

利用本地页面js创建一个<script>元素,地址指向第三方的API网址,形如:

<script src=";

提供一个回调函数来接收数据(函数名可约定,或通过地址参数传递), 第三方产生的响应为json数据的包装(故称之为jsonp,即json padding),形如:  

callback({"name":"hax","gender":"Male"})

这样浏览器会调用callback函数,并传递解析后json对象作为参数。本地脚本可在callback函数里处理所传入的数据。

示例代码:

<script>  

 var url = ";

使用jsonp需要后端代码配合, 后台返回的json外面需要由回调函数包裹。

script标签的还在是可以跨域的,jsonp 就是利用这一点来跨域。

在 GET 请求中,我们都是为了获取远程的一些数据,所以要实现的目的就是服务器端代码要通过某种方式让 JavaScript 能够拿到数据。所以,jsonp 的实现大概有以下几个步骤:

创建一个全局的临时函数,并在函数内调用响应回调

// jsonp1 是生成的一个临时函数名,可以通过简单的计数来生成,如jsonp2, jsonp3

// 生成不同的函数的目的是为了防止多个 jsonp 同时请求,回调的函数被覆盖

windowjsonp1 = function( data ) {

    

    // 调用在成功之后的回调方法

    

    onsuccess( data );

    

    // 删除临时函数,释放内存

        

    windowjsonp1 = null;

    

};

2 通过  documentcreateElement( 'script' ) 创建 script 标签,src 属性设置成远程的 api 的 url。其实就是让浏览器加载一段 JS,这段 JS 就是服务器返回的内容。

3 服务器端对返回的数据进行包装,生成一段 JS,这段 JS 里面调用了 jsonp1 这个方法,并且把数据作为参数传进去。

4 script 标签加载完成之后,jsonp1 被执行,通过 onsuccess 将 data 传递给回调方法,jsonp1 方法被销毁,释放内存。

servelt类的传值方式有 request/response/session/contex/application

可以传值到 servlet jsp页面 控制action等等

如果要在页面中获取传的参数,还是要在jsp的代码编辑方式<% %>里面将你需要传的参数获取了,比如是个String 那么在<script></script>之前将String 定义好,然后以 <%= %>方式放入其中。

本质是,你需要知道jsp就是一个servlet的变种,在容器中还是以servlet模式运行的。

可以放在head标签里面,引用外部文件或者直接在script标签里写;不过要确保页面所有元素加载完成后才能调用,也就是说要添加一个onload函数。

放在body结束之前可以避免这种情况,因为浏览器是从上到下进行渲染的,所以,当前面的元素都被渲染完之后才执行javascript代码。

<script type="text/javascript">

$(function(){

var a = $('class img')attr('src');

alert(a);//a的值就是选取的元素的值。

})

赋值和调用的程序要分开:

<script type="text/javascript">

var menuW="300px";

var barW="300px";

</script>

<script type="text/javascript" src="mymenujs" ></script>

这样,在mymenujs里就可以调用变量了。

以上就是关于如何抓取页面里的script标签包括里面的内容全部的内容,包括:如何抓取页面里的script标签包括里面的内容、JQuery ajax json怎样获取外网url返回的数据、jsonp是怎么通过script标签进行跨域的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9691156.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存