第二个暴力猴脚本- 改写后用iframe抓取携程某个城市所有起飞、到达航班并保存

注解

不用弹出窗口方式,采用了2个iframe,分别是Left,Right。Right中有按钮。Left是数据采集用。

如图:
在这里插入图片描述

用到的知识点

插入iframe

动态生成iframe内容

动态生成iframe样式CSS

获取iframe中按钮元素按下事件

获取iframe onload事件

JS 写入本地文件

结论

用iframe方式,采集相同数据的速度比新窗口方式慢几倍。不知道这是不是iframe的缺点之一。

代码

// ==UserScript==
// @name            iFrame
// @author          初一他大爷
// @description     iFrame test
// @include         http*://flights.ctrip.com/schedule/*-*map.html
// @require         http://cdn.bootcss.com/jquery/1.8.3/jquery.min.js
// @version         0.0.1
// @grant           none
// ==/UserScript==

var finalData;

var frameLeft=0;
var frameRight=0;


var idLeft = "frameL";
var idRight = "frameR";
var idBtn = "myBtn";




//change iframe height
function resizeFrame(){
    var itemWidth = ~~(document.documentElement.clientWidth*(9/10));

    frameLeft.width = itemWidth;
    frameRight.width =document.documentElement.clientWidth - itemWidth - 8;
}


//get iframe parent URL
function getParentUrl() { 
    var url = null; 

    try {  
        url = parent.location.href; 
    } catch (e) {
        url = document.referrer; 
    }  
    
    return url; 
} 


//Resize
window.onresize = function(){
    resizeFrame();
}
    

//main
window.onload=function(){
    //Insert iframe
    var firstChild = document.body.firstChild;

    var frameL = document.createElement('iframe');
    frameL.setAttribute('id',
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值