2017-01-26 7 views
1

で解析された後に拒否された私はProjekktorからダウンロードこのhtmlファイルを、している:のアクセスがProjekktor

<!DOCTYPE HTML> 
<html> 
<head> 
<title>Projekktor Version 8 Test</title> 
<link rel="stylesheet" href="theme/style.css" type="text/css" media="screen" /> 

<script type="text/javascript" src="projekktor/jquery.min.js"></script> <!-- Load jquery --> 
<script type="text/javascript" src="projekktor/projekktor.min.js"></script> <!-- load projekktor --> 
</head> 
<body> 

<video id="player_a" class="projekktor" poster="intro.png" title="this is projekktor" width="640" height="360" controls> 

     <source src="" /> 

</video> 

<script type="text/javascript"> 
$(document).ready(function() { 
    projekktor('#player_a', { 
    volume: 0.8, 
    playerFlashMP4: 'http://www.localhost:8000/StrobeMediaPlayback.swf', 
    playerFlashMP3: 'http://www.localhost:8000/StrobeMediaPlayback.swf' 
    }); 
}); 
</script> 


</body> 
</html> 

それから私は(私が資格情報を持っているAPIの呼び出しを介してユーチューブ動画のURLを取得しています)、その結果をsrc=''を置き換えるために、次のコード

import lxml.html as LH 

link = youtube_call(id) 

def parse_html(link): 

    filename = 'projekktor.html' 
    f = LH.parse(filename) 

    for el in f.iter('video'): 
     el.attrib['src'] = link 
     # have also tried 
     # el.attrib['src'] = link.replace('amp;', '') 

    new_html = LH.tostring(f, pretty_print=True) 
    print (new_html) 

を形成するが、私はそれを印刷するとき、厄介なamp;src=に追加され、リンクへのアクセスが拒否されます。

https://r3---sn-oxunxg8pjvn-bpbs.googlevideo.com/videoplayback?expire=1485418386& 
amp;mv=m& 
amp;mt=1485396620& 
amp;ms=au& 
amp;clen=13475559& 
amp;mn=sn-oxunxg8pjvn-bpbs& 
amp;mm=31& 
amp;ipbits=0& 
amp;requiressl=yes& 
amp;itag=18&amp;id=o-AG-dux-Jvtia_DsWZcyRfNpbMlzulsNn6I3SXyi0SI1B& 
amp;lmt=1458188966300704& 
amp;signature=BDC946187F74386CE00C5452CD703F9B13E4E30F.766549AB6A7C1811899CCC04742353B5BD0153D7&amp;dur=266.448&amp;key=yt6& 
amp;ip=177.142.138.140& 
amp;sparams=clen%2Cdur%2Cei%2Cgir%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cupn%2Cexpire& 
amp;ei=MluJWO_aEIr_-AXHx6GwDA& 
amp;mime=video%2Fmp4& 
amp;upn=aFGwEwwIS1o&amp;pl=20&amp;source=youtube& 
amp;ratebypass=yes&amp;initcwndbps=1178750& 
amp;gir=yes 

はすべてamp;を削除し、リンクが有効であるが、私は動作しませんlink.replace('amp;', '')を試した(私は読みやすさのために、改行にここにリンクを壊しました)。

この問題を回避する方法はありますか?実際video要素またはsource要素のsrc属性にURLで使用した場合、その中に&amp;文字参照と動画のURLがうまく動作することを

答えて

-1

。それを試してみてください。

<video id="player_a" class="projekktor" poster="intro.png" title="this is projekktor" width="640" height="360" controls> 
 
<source src="https://r3---sn-oxunxg8pjvn-bpbs.googlevideo.com/videoplayback?expire=1485418386&amp;mv=m&amp;mt=1485396620&amp;ms=au&amp;clen=13475559&amp;mn=sn-oxunxg8pjvn-bpbs&amp;mm=31&amp;ipbits=0&amp;requiressl=yes&amp;itag=18&amp;id=o-AG-dux-Jvtia_DsWZcyRfNpbMlzulsNn6I3SXyi0SI1B&amp;lmt=1458188966300704&amp;signature=BDC946187F74386CE00C5452CD703F9B13E4E30F.766549AB6A7C1811899CCC04742353B5BD0153D7&amp;dur=266.448&amp;key=yt6&amp;ip=177.142.138.140&amp;sparams=clen%2Cdur%2Cei%2Cgir%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cupn%2Cexpire&amp;ei=MluJWO_aEIr_-AXHx6GwDA&amp;mime=video%2Fmp4&amp;upn=aFGwEwwIS1o&amp;pl=20&amp;source=youtube&amp;ratebypass=yes&amp;initcwndbps=1178750&amp;gir=yes"> 
 
</video>

あなたがそれらの&amp;文字参照と、ブラウザのアドレスバーに入力した場合にのみ機能しないだろうか、そうでない場合はそのURLを直接参照しようとした場合。その場合、それはあなたに403を与えるが、それは期待される。

+0

ブラウザURLに入力してファイルをダウンロードしたときに、実際には期待通りに動作していなかった – user10089632