WebBrowser提取网页框架源码问题

coffee54676 2018-12-04 08:35:00
网址是:http://www.tingchina.com/yousheng/30171/play_30171_1.htm

网页里有个播放框架 id=playmedia,我用 WebBrowser1.Document.frame("playmedia").Document.body.innerHTML
提取框架源码,以取得播放器的Key值



结果用傲游嗅探器取得的值是正确的,可以下载: key=031cabc4d0858ffaa171bd37f915b547_597073708

我取得框架源码方法取得的值是错误的,取得的值为:key=3ac15f162f5e92969cc8f51c3493e137_597073814
请问如何才能取得正确值.

...全文
554 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
舉杯邀明月 2018-12-11
  • 打赏
  • 举报
回复
我的意思是,你那几行 Case changdu = xx 的,都要把“changdu = ”去掉,并不是只改第1句。

别理解歪了……
舉杯邀明月 2018-12-11
  • 打赏
  • 举报
回复
第1: 把事件代码中的那几个 “WebBrowser1.Refresh ”去掉!
第2: 语法问题。
   你的“Case changdu = 56”,要写成: Case 56
   要不然,你的Select Case代码块中都没有被执行的地方。
coffee54676 2018-12-11
  • 打赏
  • 举报
回复
试了下,确实如此,感谢. 等会把分给你。

还有个问题,我想在WebBrowser1_DocumentComplete 事件中连续加载下一集,始终不行,找不到哪里错了。

Private Sub Command1_Click()
WebBrowser1.Navigate "http://www.tingchina.com/yousheng/30171/play_30171_2.htm"
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Dim changdu As Integer, jishu As Integer

If (pDisp Is WebBrowser1.Object) Then '如果网页加载完毕

If URL <> "about:blank" Then '如果不为空白网页
changdu = Len(URL)

Select Case changdu
Case changdu = 56 '集数<10
jishu = Mid$(URL, 52, 1) '取链接中集数值
Case changdu = 57 '10<集数<100
jishu = Mid$(URL, 52, 2)
Case changdu = 58 '100<集数<1000
jishu = Mid$(URL, 52, 3)
Case changdu = 59 '1000<集数<10000
jishu = Mid$(URL, 52, 4)
End Select

If jishu > Text1(2).text Then 'Text1(2)是最后一集
Unload Me
Else

WebBrowser1.Refresh
WebBrowser1.Navigate Text1(0).Text & jishu + 1 & ".htm" '加载下一级
End If
End If

Else
WebBrowser1.Refresh
End If

End Sub
coffee54676 2018-12-10
  • 打赏
  • 举报
回复
我试过,不可以直接下载的;你怎么能下载的?
舉杯邀明月 2018-12-10
  • 打赏
  • 举报
回复
引用 12 楼 coffee54676 的回复:
我试过,不可以直接下载的;你怎么能下载的?

很明显……这个Key是有时间限制的 !
昨天我回复你的帖子时,用火狐、IE、自己写的VB程序中的WebBrowser控件,都是可以正常访问的。
  IE和WebBrowser控件会弹出“下载文件”对话框,火狐是在浏览器内直接打开媒体进行播放了。
而刚才我试了一下,都跟你的这个“效果”一样了。

你需要重新获取后面的那一串key …………
舉杯邀明月 2018-12-09
  • 打赏
  • 举报
回复
主要就是: 要把“mp3问号”以及后面的那一串“编码”一起,作为URL进行访问。
舉杯邀明月 2018-12-09
  • 打赏
  • 举报
回复
引用 9 楼 coffee54676 的回复:
有谁知道下面这样的网址如何下载

http://177h.jqkan.com:8000/%E7%8E%84%E5%B9%BB%E5%B0%8F%E8%AF%B4/%E5%A4%A7%E5%A6%86/227.mp3?223018145844725x1544344600x223018151975385-2e486e294256027906ef359643

这个“链接”,不是可以直接下载的吗!

coffee54676 2018-12-09
  • 打赏
  • 举报
回复
有谁知道下面这样的网址如何下载

http://177h.jqkan.com:8000/%E7%8E%84%E5%B9%BB%E5%B0%8F%E8%AF%B4/%E5%A4%A7%E5%A6%86/227.mp3?223018145844725x1544344600x223018151975385-2e486e294256027906ef359643
coffee54676 2018-12-09
  • 打赏
  • 举报
回复
@脆皮大雪糕 傲游取得的key可以播放,用Document.body.innerHTML 取得的key播放不了
脆皮大雪糕 2018-12-07
  • 打赏
  • 举报
回复
反正你取出来的能用为啥介意遨游取出来啥。 万一遨游是错的呢?
舉杯邀明月 2018-12-07
  • 打赏
  • 举报
回复
引用 5 楼 coffee54676 的回复:
用 body.outerHTML 可以了。
用WebBrowser1.Document.frames("playmedia").Document.body.outerHTML 得出一串和傲游不一样的key,但是能可以打开,奇怪了

这个key,就不用管它那么多,只要确认“可用”就行了。

coffee54676 2018-12-06
  • 打赏
  • 举报
回复
用 body.outerHTML 可以了。
用WebBrowser1.Document.frames("playmedia").Document.body.outerHTML 得出一串和傲游不一样的key,但是能可以打开,奇怪了
coffee54676 2018-12-06
  • 打赏
  • 举报
回复
找的是同一个值,都在源码同一个位置;

傲游查找的框架源码:



我的程序找到的框架源码:

VB业余爱好者 2018-12-05
  • 打赏
  • 举报
回复
引用 楼主 coffee54676 的回复:
网址是:http://www.tingchina.com/yousheng/30171/play_30171_1.htm

网页里有个播放框架 id=playmedia,我用 WebBrowser1.Document.frame("playmedia").Document.body.innerHTML
提取框架源码,以取得播放器的Key值



结果用傲游嗅探器取得的值是正确的,可以下载: key=031cabc4d0858ffaa171bd37f915b547_597073708

我取得框架源码方法取得的值是错误的,取得的值为:key=3ac15f162f5e92969cc8f51c3493e137_597073814
请问如何才能取得正确值.



你可以在页面代码里面检索一下你取得的那个错误值在页面里面是干什么的。个人觉得你取回的值和你要取回的值不是一个东西。
VB业余爱好者 2018-12-05
  • 打赏
  • 举报
回复
引用 2 楼 coffee54676 的回复:
是用 WebBrowser1.Document.frame("playmedia").Document.body.innerHTML 取得框架源码,然后手动找的Key值


首先,我觉得你取回的错误值“key=3ac15f162f5e92969cc8f51c3493e137_597073814”,在页面中也是存在的,否则不会无缘无故取到这么一串字符,我建议你先找到这串错误码的位置,然后再看为什么取到的是这个码,而不是你想要的正确码
coffee54676 2018-12-05
  • 打赏
  • 举报
回复
是用 WebBrowser1.Document.frame("playmedia").Document.body.innerHTML 取得框架源码,然后手动找的Key值

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧