请问如何获取html源文件而不改变编码
我通过InetGet() 获取回来的htm与 IE 中察看源文件不一致。不知道是不是编码的问题,但是区别很小,只是在 <a href=""></a> 中的超链不一致.
例如这两个地址:
通过 IE 察看得到的:
http://xxx&key=750b0522dae7457a881f824bc32c0621f410c2&
通过 InetGet() 得到的:
http://xxx&key=0ba08793c352d0095cc8444bc32c0795f1ed6a&
希望能得到高手们的帮助,非常感谢! 这个可能本身就是会改变的。你刷新后看看。 这个是动态的 刷新一次变一次 大概是自动用户id 浏览器版本信息之类 或者只是网站防盗链弄得随机地址 还真的是,刷新后就变了.
我目的是想获取这网页上的htm,从而提取其中的真实地址。麻烦各位看看有没办法。
万分感激!!!!
http://www.flvcd.com/parse.php?flag=&format=&kw=http%3A%2F%2Fwww.tudou.com%2Fprograms%2Fview%2FRzVVLjETta8%2F&sbt=%BF%AA%CA%BCGO%21 本帖最后由 lainline 于 2010-4-12 23:44 编辑
这个网站有后台程序从网页代码里大概分析不出什么
最好从flvcd.js入手 用 intget 得到的真实地址和上面提供的非常相似.
但是 inetget 得到的就是下不了,而上面的就正常。
希望上面的大大帮忙!! 看来真的比较麻烦了。
哎!! Local $Url = 'http://www.flvcd.com/parse.php?flag=&format=&kw=http%3A%2F%2Fwww.tudou.com%2Fprograms%2Fview%2FRzVVLjETta8%2F&sbt=%BF%AA%CA%BCGO%21'
Local $oHTTP = ObjCreate("microsoft.xmlhttp")
$oHTTP.Open("get", $Url, False)
$oHTTP.Send()
Local $str = BinaryToString($oHTTP.responseBody)
Local $sR = StringRegExp($str, ':\h*<a href\h*\=\h*\"(.+?)\".+?copyToClipboard\(.(.+?).\)', 3)
If @Error Then Exit Msgbox(0, 48, 'No~')
Local $link = StringRegExpReplace($sR, 'amp;', '')
ClipPut($link)
MsgBox(0, $sR, '下载地址:"' & $link & '"' & @LF & '已复制至剪贴板,可自行粘贴到地址栏测试~') 感谢afan大,你真强!!! 还有个请求,请问可以解释下这段代码吗?
感觉上面用的东西在帮助李没有相关说明。
好像用了 类对象 不知是否可以,多谢! .innerHTML 我也来写一个,使用IE.AU3 来获取地址#include <IE.au3>
$URL = "http://www.flvcd.com/parse.php?flag=&format=&kw=http%3A%2F%2Fwww.tudou.com%2Fprograms%2Fview%2FRzVVLjETta8%2F&sbt=%BF%AA%CA%BCGO%21"
$oIE = _IECreate($URL)
$oElements = _IETagNameAllGetCollection ($oIE)
For $oElement In $oElements
If StringCompare("a",$oElement.tagname) = 0 Then
If StringInStr($oElement.innerText,"http://") > 0 Then
MsgBox(0,"URL",$oElement.innerText)
EndIf
EndIf
Next
_IEAction($oIE,"quit")
页:
[1]