请教读取动态网页源码的问题

问题描述

如题下面是IE中F12查看到的源码<scripttype="text/javascript"src="base-pages/js/changeHeight.js"></script><scripttype="text/javascript"src="base-pages/js/roomHeight.js"></script><!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><title>avi</title><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><styletype="text/css"><!--.z{background-image:url(images/m-bg.jpg);background-repeat:no-repeat;;padding:20px;}.STYLE2{padding:10px;color:#9F0018;font-weight:bold;font-size:14px;}--></style><scriptlanguage="javascript">varcurrentposit='5';varCurrentPosition=0;varplayofEnd=0;functionstopPlay(){document.MediaPlayer.Pause();}functioncontinuePlay(){document.MediaPlayer.Play();}functionPositionChange(dblNewPosition){//alert(dblNewPosition);//document.MediaPlayer.Seeking(dblNewPosition);document.MediaPlayer.CurrentPosition=dblNewPosition;}functioncurrentPosition(){CurrentPosition=document.MediaPlayer.CurrentPosition;//alert("isAvailable:"+document.MediaPlayer.isAvailable("CurrentPosition"));/*vartemp='5';alert(CurrentPosition+":"+temp);if(CurrentPosition<temp){alert("buffering~!!");document.MediaPlayer.Pause();document.MediaPlayer.Buffering(true);}*/}setInterval("currentPosition()",3000);functionresize(){varrate=1.34;document.getElementById("MediaPlayer").height=parent.frames['resPlay'].document.body.clientHeight-145;document.getElementById("MediaPlayer").width=(parent.frames['resPlay'].document.body.clientHeight-145)*rate;if(document.getElementById("MediaPlayer").height<400){document.getElementById("MediaPlayer").width=600;document.getElementById("MediaPlayer").height=420;}}functionshowPlayWay(){varshowFlag='0';if(showFlag=='1'){document.MediaPlayer.Stop();;varflag=window.showModalDialog('codsrv!IsPlayWay.action','','dialogWidth:1024px;dialogHeight:900px;dialogLeft:10px;dialogTop:10px;help:no',window);document.MediaPlayer.Play();if(flag==1){setTimeout("PositionChange(currentposit)",500);}else{PositionChange(0);}}}//请等待document.write('<divid="doing"style="position:absolute;background:#f2f2f2;color:#f00;border:solid3px#CCC;width:300px;height:100px;left:30%;top:30%;"><tablealign="center"><tr><td>&nbsp;&nbsp;</td></tr><tr><td>请等待。。。</td></tr><tr><tdalign="center"><imgsrc="common-images/resource/loader.gif"width="32"height="32"></td></tr></table></div>');</script><scriptlanguage="javascript"for="MediaPlayer"event="EndOfStream()">playofEnd=1;</script></head><bodyonresize="resize();"><tablewidth="100%"border="0"cellspacing="0"cellpadding="0"><tr><tdalign="center"class="STYLE2">正在播放</td></tr><tr><tdalign="center"valign="middle"id="vga"colspan="2"><objectclassid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95"id="MediaPlayer"width="700"height="528"><paramname="ShowControls"value="true"><paramname="EnablePositionControls"value="true"><paramname="EnableFullScreenControls"value="true"><paramname="EnableTracker"value="0"><paramname="AutoRewind"value="true"><paramname="ShowStatusBar"value="true"><paramname="BufferingTime"value="15000"><paramname="ShowPositionControls"value="true"><paramname="AutoStart"value="true"><paramname="CanSeek"value="true"><paramname="SRC"value="http://*****.cn:80//uploads//%E4%BA%A7%E5%93%81%E5%8F%8A%E6%96%B9%E6%A1%88%E8%83%BD%E5%8A%9B/%E4%B8%93%E4%B8%9A%E5%AE%9E%E6%96%BD/U8/1ACGGL12004%E9%87%87%E8%B4%AD%E4%BB%B7%E6%A0%BC%E7%AE%A1%E7%90%86.wmv"></object></td></tr></table></body></html><scriptlanguage="javascript">//varcurrentposit='5';setTimeout("PositionChange(currentposit)",1000);</script>

其中有个object标签的srchttp://******.wmv,这个是我想要的内容目前用的代码如下(网页必须用账号登录才可以播放视频)SHDocVw.ShellWindowsshellWindows=newSHDocVw.ShellWindowsClass();foreach(SHDocVw.InternetExploreriwinshellWindows){mshtml.HTMLDocumentClassdoc=(mshtml.HTMLDocumentClass)iw.Document;mshtml.HTMLBodybody=(mshtml.HTMLBody)doc.body;stringhtml=body.innerHTML.ToString();mshtml.IHTMLElementimg=(mshtml.IHTMLElement)doc.all.item("MediaPlayer",0);

这里取到的html内容跟IE里F12看到的不一样,看不到mediaplayer的内容怎么能取到执行完JS的视频链接????

解决方案

解决方案二:
没做过,顶一下,LZ加油~
解决方案三:
body.outHTML.ToString();好像有这个。。。。
解决方案四:
引用2楼wawd74520的回复:

body.outHTML.ToString();好像有这个。。。。

这个取不到js动态加载完的数据
解决方案五:
引用3楼diaries的回复:

Quote: 引用2楼wawd74520的回复:
body.outHTML.ToString();好像有这个。。。。

这个取不到js动态加载完的数据

酱紫啊。我也不知道了。看看这个
解决方案六:
分析js看他请求什么地址
解决方案七:
引用4楼wawd74520的回复:

Quote: 引用3楼diaries的回复:
Quote: 引用2楼wawd74520的回复:
body.outHTML.ToString();好像有这个。。。。

这个取不到js动态加载完的数据

酱紫啊。我也不知道了。看看这个

不是一个语言....
解决方案八:
引用6楼diaries的回复:

Quote: 引用4楼wawd74520的回复:
Quote: 引用3楼diaries的回复:
Quote: 引用2楼wawd74520的回复:
body.outHTML.ToString();好像有这个。。。。

这个取不到js动态加载完的数据

酱紫啊。我也不知道了。看看这个

不是一个语言....

///<summary>///获取源代码///</summary>///<returns></returns>publicstringGetHtml(boolSacn){stringTempStr="";//初始化所有IE窗口IShellWindowssw=newShellWindowsClass();for(inti=sw.Count-1;i>=0;i--){//得到每一个IE的IWebBrowser2对象IWebBrowser2iwb2=sw.Item(i)asIWebBrowser2;//比对得到的句柄是否符合查找的窗口句柄if(iwb2!=null&&iwb2.HWND==IEHandle){Document=(HTMLDocumentClass)iwb2.Document;if(Sacn)if((Document==null||Document.title==null||Document.title!=HeadTitle)&&!Document.title.Contains(BadHeadTitle)){continue;}iwb2.StatusBar=false;//状态栏SendMessage(newIntPtr(iwb2.HWND),274,61488,0);if(Document==null)return"";if(Document.title=="百度一下,你就知道"||Document.title=="360搜索-干净、安全、可信任的搜索引擎")TempStr="<!doctypehtml>"+((HTMLDocumentClass)iwb2.Document).documentElement.outerHTML;elseTempStr=((HTMLDocumentClass)iwb2.Document).documentElement.outerHTML;try{HeighBro=((IHTMLElement2)Document.body).scrollHeight;}catch{}break;}}returnTempStr;}

改改。试试。
解决方案九:
你说的这个问题我也遇到过,就是动态生成的代码获取问题,目前我没找到好的办法,不过你把上一个页面代码发来看看,能不能分析出来,我看过网上说用代码模拟Post发送请求可以获取动态生成的代码,但我还没解决
解决方案十:
引用7楼wawd74520的回复:

Quote: 引用6楼diaries的回复:
Quote: 引用4楼wawd74520的回复:
Quote: 引用3楼diaries的回复:
Quote: 引用2楼wawd74520的回复:
body.outHTML.ToString();好像有这个。。。。

这个取不到js动态加载完的数据

酱紫啊。我也不知道了。看看这个

不是一个语言....

///<summary>///获取源代码///</summary>///<returns></returns>publicstringGetHtml(boolSacn){stringTempStr="";//初始化所有IE窗口IShellWindowssw=newShellWindowsClass();for(inti=sw.Count-1;i>=0;i--){//得到每一个IE的IWebBrowser2对象IWebBrowser2iwb2=sw.Item(i)asIWebBrowser2;//比对得到的句柄是否符合查找的窗口句柄if(iwb2!=null&&iwb2.HWND==IEHandle){Document=(HTMLDocumentClass)iwb2.Document;if(Sacn)if((Document==null||Document.title==null||Document.title!=HeadTitle)&&!Document.title.Contains(BadHeadTitle)){continue;}iwb2.StatusBar=false;//状态栏SendMessage(newIntPtr(iwb2.HWND),274,61488,0);if(Document==null)return"";if(Document.title=="百度一下,你就知道"||Document.title=="360搜索-干净、安全、可信任的搜索引擎")TempStr="<!doctypehtml>"+((HTMLDocumentClass)iwb2.Document).documentElement.outerHTML;elseTempStr=((HTMLDocumentClass)iwb2.Document).documentElement.outerHTML;try{HeighBro=((IHTMLElement2)Document.body).scrollHeight;}catch{}break;}}returnTempStr;}

改改。试试。

貌似还是取不到
解决方案十一:
引用8楼SmileSkyNet的回复:

你说的这个问题我也遇到过,就是动态生成的代码获取问题,目前我没找到好的办法,不过你把上一个页面代码发来看看,能不能分析出来,我看过网上说用代码模拟Post发送请求可以获取动态生成的代码,但我还没解决

可发字数有限,如果你想看现在具体能取到的源码可以看这里http://q.cnblogs.com/q/68302/
解决方案十二:
try{Regexr=newRegex(@"<img[sS]*?>",RegexOptions.IgnoreCase);stringtxt=string.Empty;MatchCollectioncol=r.Matches(Content);returncol[numbers].ToString();}catch(Exception){returnstring.Format("<imgsrc="{0}"/>",erroUrl);}

我的是这样写的,你修改一下就可以用了..我取的是img你取wmv
解决方案十三:
引用11楼VisualTeam的回复:

try{Regexr=newRegex(@"<img[sS]*?>",RegexOptions.IgnoreCase);stringtxt=string.Empty;MatchCollectioncol=r.Matches(Content);returncol[numbers].ToString();}catch(Exception){returnstring.Format("<imgsrc="{0}"/>",erroUrl);}

我的是这样写的,你修改一下就可以用了..我取的是img你取wmv

现在的问题是我自己的源码取到不带wmv的,用浏览器的F12看到是有wmv链接的,可能是我取到的源码需要js执行输出视频的链接

时间: 2024-10-25 20:16:17

请教读取动态网页源码的问题的相关文章

java 获取网页源码(包括js动态生成的)

问题描述 不知道那位大侠做过类似的东西,我现在就想做一个能够对网页源码解析的一个小工具,可是我试了很多种方式都不行;都说HtmlUnit这个可以加载Js生成的数据,可是我用了还是不行,HttpClient这个只能得到静态生成的网页源码.各位高手给个案例,谢谢! 解决方案 解决方案二:js动态生成的代码需要分析理解函数调用产生的结果代码(一部分是猜).解决方案三:jsoup可能会实现吧解决方案四:jsoup也不行,就是不知道如何模拟网页执行后的过程解决方案五:如果确实需要那就自己模拟个浏览器吧.解

android获取网页源码问题

问题描述 android获取网页源码问题 以下是我从网上找的获取网页源码的 代码 所有包都已经正常导入 但是编译后 程序一运行就崩溃 求大神指点import 略; /** @author Jasonzhou @since 2013-03-21 @功能 读取网页内容 @说明 获取网页的全部代码后使用jsuop进行处理, 以便得到想要的内容**/ public class MainActivity extends Activity { public String url = ""http:

Android编程实现网络图片查看器和网页源码查看器实例_Android

本文实例讲述了Android编程实现网络图片查看器和网页源码查看器.分享给大家供大家参考,具体如下: 网络图片查看器 清单文加入网络访问权限: <!-- 访问internet权限 --> <uses-permission android:name="android.permission.INTERNET"/> 界面如下:   示例: public class MainActivity extends Activity { private EditText ima

【Android开发】网络通信之网页源码查看器

今天学习了安卓开发中有关网络通信相关的东西. 根据教学视频,我按照步骤写了一个"网页源码查看器".通过写这个东西,我学会了使用URL和 HttpURLConnection取得与网站的链接   部分链接代码: /* * 获取网页html源代码: * path 网页路径 * */ public static String getHtml(String path) throws Exception{ //将path包装成一个URL对象 URL url=new URL(path); //取得链

Android编程实现网络图片查看器和网页源码查看器实例

本文实例讲述了Android编程实现网络图片查看器和网页源码查看器.分享给大家供大家参考,具体如下: 网络图片查看器 清单文加入网络访问权限: <!-- 访问internet权限 --> <uses-permission android:name="android.permission.INTERNET"/> 界面如下: 示例: public class MainActivity extends Activity { private EditText image

Android通过访问网页查看网页源码实例详解

Android通过访问网页查看网页源码 1.添加网络权限 <!--访问网络的权限--> <uses-permission android:name="android.permission.INTERNET"/> 2.获取网络中网页的数据 /** * 获取网页HTML源代码 * @param path 网页路径 */ public static String getHtml(String path) throws Exception { URL url=new U

在 Firefox 里通过外部编辑器查看网页源码

  在 Firefox 浏览器中,通过右键.菜单栏功能项或快捷键(cmd + U)就可以查看的网页源码.不过弹出的仅仅是个浏览窗口,想要进行编辑等进一步操作的话就得靠复制粘贴大法了.有没有这样一个办法,能够让 Firefox 的查看源代码功能直接调用外部编辑器来进行操作呢? 在 Firefox 地址栏输入 about:config,然后在过滤器中搜索 source.editor; 双击 view_source.editor.external 将其值设置为 true; 双击 view_source

[IT]HTML网页源码的字符编码(charset)解释

当你通过浏览器,打开某个网站,即某个url地址的时候,你所能正常看到网页的内容,各种文字,都可以正常显示,且没有显示乱码. 此过程,涉及到,浏览器帮你正确解析HTML源码,其中涉及到HTML网页源码的字符编码处理方面的问题. 和字符编码处理相关的大概逻辑是: 1.浏览器访问对应的url地址,并获取对应的HTML(或者,以及,其他的css,javascript等)网页源码 2.浏览器识别解析HTML源码内容 其中包含了解析HTML的头部(head),找到对应的charset和Content-typ

技术-用jsoup抓取网页获取网页源码的时候,得到的源码和在网站上面点击右键查看源码不相同,怎么解决

问题描述 用jsoup抓取网页获取网页源码的时候,得到的源码和在网站上面点击右键查看源码不相同,怎么解决 用jsoup抓取网页获取网页源码的时候,得到的源码和在网站上面点击右键查看源码不相同,怎么解决 Document doc = Jsoup.parse(new URL(url), 5000); 解决方案 一部分html是ajax异步加载的,你得用fiddler调试,得到这些请求,照着写 解决方案二: C++ 抓取网页的源码获取网页的源码获取网页源码工具类