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