【问题标题】:HTML: Get direct link to file from embed srcHTML:从嵌入 src 获取文件的直接链接
【发布时间】:2012-05-21 19:07:18
【问题描述】:

我想知道如何仅从嵌入链接获取到嵌入视频的直接链接(指向 .flv/.mp4 或任何文件的链接)。

例如,http://www.kumby.com/ano-hana-episode-1/

<embed src="http://www.4shared.com/embed/571660264/396a46be"></embed>

,虽然视频的链接似乎是 “http://dc436.4shared.com/img/571660264/396a46be/dlink__2Fdownload_2FM2b0O5Rr_3Ftsid_3D20120514-093834-29c48ef9/preview.flv”

浏览器如何知道从哪里加载视频?如何编写将嵌入链接转换为直接链接的代码?

更新: 感谢您的快速回答,昆汀。 但是,连接到“http://www.4shared.com/embed/571660264/396a46be”时,我似乎没有收到“位置”标头。

import urllib2
r=urllib2.urlopen('http://www.4shared.com/embed/571660264/396a46be')

给了我以下标题: 'content-length', 'via', 'x-cache', 'accept-ranges', 'server', 'x-cache-lookup', 'last-modified', 'connection', 'etag', 'date ', '内容类型', 'x-jsl'

from urllib2 import Request
r=Request('http://www.4shared.com/embed/571660264/396a46be')

根本不给我任何标题。

【问题讨论】:

  • 您需要显示更多代码来演示您如何提出请求。默认情况下,大多数 HTTP 库会自动跟踪重定向,因此不会告诉您有关直接的信息。
  • @Quentin:所以这毕竟是 python 问题?好的,我会更新标签和问题。

标签: python html embed


【解决方案1】:

服务器发出302 HTTP status codea Location header

$ curl -I http://www.4shared.com/embed/571660264/396a46be
HTTP/1.1 302 Moved Temporarily
Server: Apache-Coyote/1.1

(snip cookies)

Location: http://static.4shared.com/flash/player/5.6/player.swf?file=http://dc436.4shared.com/img/M2b0O5Rr/gg_Ano_Hi_Mita_Hana_no_Namae_o.flv&provider=image&image=http://dc436.4shared.com/img/M2b0O5Rr/gg_Ano_Hi_Mita_Hana_no_Namae_o.flv&displayclick=link&link=http://www.4shared.com/video/M2b0O5Rr/gg_Ano_Hi_Mita_Hana_no_Namae_o.html&controlbar=none
Content-Length: 0
Date: Mon, 14 May 2012 10:01:59 GMT

如果您想获取有关重定向响应的信息而不是自动跟踪重定向,请参阅How do I prevent Python's urllib(2) from following a redirect

【讨论】:

  • 非常感谢!那里没有不必要的信息/文字!但是,我没有收到“位置”标题。我正在更新问题。
  • 实际上,我想我是愚蠢的,直到现在才注意到,但是没有指向任何视频文件的链接。 “位置”链接到 4shared 播放器、两个视频缩略图和 4shared 网站。
猜你喜欢
  • 2016-03-25
  • 2021-10-14
  • 1970-01-01
  • 1970-01-01
  • 2017-08-26
  • 2019-10-15
  • 2011-03-01
  • 2015-07-19
  • 2018-10-27
相关资源
最近更新 更多