Actionscript 3 ActionScript 3.0 web scraper在flash中工作,但在浏览器中不工作

Actionscript 3 ActionScript 3.0 web scraper在flash中工作,但在浏览器中不工作,actionscript-3,flash,web-scraping,Actionscript 3,Flash,Web Scraping,所以我有这个问题。我最近制作了一个flash webscraper来获取视频源链接。它在flash中工作,但是当我在浏览器中测试时,我只得到一个空白画布。。。它不起作用。我不知道问题是什么。。。我今天才开始学习actionscript,所以我远不是最棒的 import flash.net.* import flash.events.*; import flash.display.*; var theUrl = "http://www.sockshare.com/file/384F14398D2

所以我有这个问题。我最近制作了一个flash webscraper来获取视频源链接。它在flash中工作,但是当我在浏览器中测试时,我只得到一个空白画布。。。它不起作用。我不知道问题是什么。。。我今天才开始学习actionscript,所以我远不是最棒的

import flash.net.*
import flash.events.*;
import flash.display.*;

var theUrl = "http://www.sockshare.com/file/384F14398D224634";
firstStep();

function firstStep() {
    var urlReq: URLRequest = new URLRequest(theUrl);
    urlReq.method = URLRequestMethod.POST;
    var loader: URLLoader = new URLLoader(urlReq);
    loader.addEventListener(Event.COMPLETE, onSuccess);
    loader.dataFormat = URLLoaderDataFormat.TEXT;
    loader.load(urlReq);

    function onSuccess(e: Event): void {
        var theContents1: String = String(loader.data);
        var pattern1: RegExp = /<input type="hidden" value="(?P<innertext>.*?)" name="hash">/;
        var result1 = pattern1.exec(theContents1);
        goToSecond(result1.innertext);

    }
}

function goToSecond(hash: String) {
    var urlReq2: URLRequest = new URLRequest(theUrl);
    urlReq2.method = URLRequestMethod.POST;
    var urlVars2: URLVariables = new URLVariables();
    urlVars2.hash = hash;
    urlVars2.confirm = 'Continue+as+Free+User';
    urlReq2.data = urlVars2;
    var loader2: URLLoader = new URLLoader(urlReq2);
    loader2.addEventListener(Event.COMPLETE, onSuccess2);
    loader2.dataFormat = URLLoaderDataFormat.VARIABLES;
    loader2.load(urlReq2);

    function onSuccess2(e: Event): void {
        var theContents2: String = String(loader2.data);
        var pattern: RegExp = /playlist%3A%20%27%2F(?P<innertext>.*?)%27%2C%0D%0A%09plugins/;
        var result = pattern.exec(theContents2);
        var linkp1: String = "http://www.sockshare.com/" + unescape(result.innertext);
        finalStep(linkp1);
    }
}


function finalStep(finalUrl: String) {
    var urlReq3: URLRequest = new URLRequest(finalUrl);
    urlReq3.method = URLRequestMethod.POST;
    var loader3: URLLoader = new URLLoader(urlReq3);
    loader3.addEventListener(Event.COMPLETE, onSuccess3);
    loader3.dataFormat = URLLoaderDataFormat.TEXT;
    loader3.load(urlReq3);

    function onSuccess3(e: Event): void {
        var theContents3: String = String(loader3.data);
        var pattern2: RegExp = /<media:content url="(?P<innertext>.*?)" type="/;
        var result2 = pattern2.exec(theContents3);
        var finalLink: String = result2.innertext;
        trace(finalLink);
        mainText.text = finalLink;
    }
}
导入flash.net*
导入flash.events.*;
导入flash.display.*;
var theUrl=”http://www.sockshare.com/file/384F14398D224634";
第一步();
函数firstStep(){
var urlReq:URLRequest=新的URLRequest(theUrl);
urlReq.method=URLRequestMethod.POST;
变量加载器:URLLoader=新的URLLoader(urlReq);
loader.addEventListener(Event.COMPLETE,onSuccess);
loader.dataFormat=URLLoaderDataFormat.TEXT;
loader.load(urlReq);
函数onSuccess(e:事件):void{
var theContents1:String=String(loader.data);
变量模式1:RegExp=/;
var result1=pattern1.exec(内容1);
goToSecond(result1.innertext);
}
}
函数goToSecond(散列:字符串){
var urlReq2:URLRequest=新的URLRequest(theUrl);
urlReq2.method=URLRequestMethod.POST;
var urlVars2:urlvarables=新的urlvarables();
urlVars2.hash=hash;
urlVars2.confirm='Continue+as+Free+User';
urlReq2.data=urlVars2;
var loader2:URLLoader=新的URLLoader(urlReq2);
loader2.addEventListener(Event.COMPLETE,onSuccess2);
loader2.dataFormat=URLLoaderDataFormat.VARIABLES;
loader2.load(URL请求2);
函数onSuccess2(e:事件):void{
var theContents2:String=String(loader2.data);
变量模式:RegExp=/playlist%3A%20%27%2F(?P.*)%27%2C%0D%0A%09plugins/;
var result=pattern.exec(内容2);
变量linkp1:字符串=”http://www.sockshare.com/“+unescape(result.innertext);
最后一步(linkp1);
}
}
函数finalStep(finalUrl:String){
变量urlReq3:URLRequest=新的URLRequest(finalUrl);
urlReq3.method=URLRequestMethod.POST;
变量装入器3:URLLoader=新的URLLoader(urlReq3);
loader3.addEventListener(Event.COMPLETE,onSuccess3);
loader3.dataFormat=URLLoaderDataFormat.TEXT;
loader3.load(URL请求3);
函数onSuccess3(e:事件):void{
var theContents3:String=String(loader3.data);

var pattern2:RegExp=/这是沙箱问题,请阅读,如果您将发布为独立(ex:Air)项目,它将在web应用程序中工作

,具体取决于您访问的内容以及ex:crossdomain.xml的配置。解决方法是创建web代理,例如PHP,最简单的代码:将其放在服务器上(您可以在其中根据需要配置跨域)从AS3而不是真实地址调用。这很有趣,因为我只使用ActionScript,因为PHP是服务器端的,我需要在客户端加载内容。所以,它看起来像回到了绘图板上…:D,在这种情况下,您只能创建一个代理PHP,然后在所有项目中使用AS3,所以我觉得差别不大;)是的,但问题是初始加载根据IP地址生成唯一链接。因此,如果我使用PHP,网站将使用的IP地址将是我的服务器而不是用户…因此我不知道该怎么做。如果你需要IP地址,请读取并传递IP地址。