kxing 发表于 2010-4-12 23:20:38

请问如何获取html源文件而不改变编码

我通过InetGet() 获取回来的htm与 IE 中察看源文件不一致。
不知道是不是编码的问题,但是区别很小,只是在 <a href=""></a> 中的超链不一致.

例如这两个地址:

通过 IE 察看得到的:
http://xxx&key=750b0522dae7457a881f824bc32c0621f410c2&amp;

通过 InetGet() 得到的:
http://xxx&key=0ba08793c352d0095cc8444bc32c0795f1ed6a&amp;


希望能得到高手们的帮助,非常感谢!

afan 发表于 2010-4-12 23:22:56

这个可能本身就是会改变的。你刷新后看看。

rho123 发表于 2010-4-12 23:23:58

这个是动态的 刷新一次变一次

lainline 发表于 2010-4-12 23:25:51

大概是自动用户id 浏览器版本信息之类 或者只是网站防盗链弄得随机地址

kxing 发表于 2010-4-12 23:35:56

还真的是,刷新后就变了.

我目的是想获取这网页上的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:40:30

本帖最后由 lainline 于 2010-4-12 23:44 编辑

这个网站有后台程序从网页代码里大概分析不出什么

最好从flvcd.js入手

kxing 发表于 2010-4-12 23:41:13

用 intget 得到的真实地址和上面提供的非常相似.
但是 inetget 得到的就是下不了,而上面的就正常。
希望上面的大大帮忙!!

kxing 发表于 2010-4-12 23:55:25

看来真的比较麻烦了。
哎!!

afan 发表于 2010-4-13 01:01:44

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 & '已复制至剪贴板,可自行粘贴到地址栏测试~')

kxing 发表于 2010-4-13 02:01:04

感谢afan大,你真强!!!

kxing 发表于 2010-4-13 03:13:05

还有个请求,请问可以解释下这段代码吗?
感觉上面用的东西在帮助李没有相关说明。
好像用了 类对象 不知是否可以,多谢!

UID 发表于 2010-4-13 17:00:13

.innerHTML

clshuai 发表于 2010-4-14 21:33:07

我也来写一个,使用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]
查看完整版本: 请问如何获取html源文件而不改变编码