日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

perl 爬ku6视频

發布時間:2025/4/5 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 perl 爬ku6视频 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ?起因是自己想在公司做ku6視頻緩存增加點工作經驗(領導非常支持,找了7臺720XD,有個好領導還是很幸福的),后來因為白天回源緊張,就停止計劃了;某天突然想到那些視頻公司都是主動推送熱點文件到服務器,要是我自己凌晨回源同步熱點,減少白天熱點文件回源,那我視頻緩存項目還可以繼續推進;

個人是perl新手,下面代碼有些是朋友幫忙寫的(有好朋友也幸福...要不然自己要研究到啥時候),我自己寫了點再把各部分功能組合起來;雖然跑的慢點,但有效果,也能接受; 這算寫過最長的代碼了。。。

[root@web-40 perl]# cat new_hash_ku6.pl #!/usr/bin/perl use strict; use warnings; use LWP::Simple; use HTML::TreeBuilder; use JSON qw(decode_json); my $html = get ("http://www.ku6.com"); my $root = HTML::TreeBuilder->new_from_content($html); my %p_w_picpaths = (); my @urls; my $sub_html; my $sub_root; my %urls; my @sub_urls; foreach my $node ($root->find_by_tag_name('a')){$p_w_picpaths{$node->attr('href')}++; } foreach my $pic (sort keys %p_w_picpaths){if ( ($pic =~ /http:\/\/v\.ku6\.com.*/s) &&($pic =~ m{/show/})){push(@urls, $pic);$urls{$pic}++;} } 上面代碼是把ku6首頁的視頻連接都抓出來; 子程序get_sub_url 是逐個請求視頻連接,順便把每打開一個視頻網頁,那頁上面的推廣視頻連接也抓下來保存到數組; sub get_url {foreach my $url (@urls){$sub_html = get ($url);$sub_root = HTML::TreeBuilder->new_from_content($sub_html);my %href = ();for my $sub_node ($sub_root->find_by_tag_name('a')){$href{$sub_node->attr('href')}++;}for my $sub_pic (sort keys %href){if (($sub_pic =~ /http:\/\/v\.ku6\.com.*/s) &&($sub_pic =~ m{/show/})){if (exists $urls{$sub_pic}){next;}else { push(@sub_urls,$sub_pic) };}}get_mail_url(@sub_urls);} } 子程序get_mail_url 是模擬用戶去訪問ku6的調度服務器,下載視頻內容; 這樣就相當于主動把ku6的熱點文件下載到緩存服務器,復用了,凌晨的空閑 帶寬 sub get_mail_url {foreach my $get_mail (@sub_urls){my $url_mail = "$get_mail";my $lwp =new LWP::UserAgent( agent =>'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; CIBA)');my $request = HTTP::Request->new( GET => $url_mail );$lwp->max_redirect;$request->header( Accept => 'text/html' );my $response = $lwp->request($request);my $html = $response->decoded_content;my ($flv_download_link) = ( $html=~ /"f":"([^\"]+)"/s );my $json = '{ "url":"' . $flv_download_link. '"}';$flv_download_link = decode_json($json)->{url};system("wget $flv_download_link -O /dev/null");} } get_url (@urls);



下一步就是,讓CDN跑一周以上,根據日志,分析用戶主要看哪類視頻,重點爬這些視頻;

轉載于:https://blog.51cto.com/luyafei/1286748

總結

以上是生活随笔為你收集整理的perl 爬ku6视频的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。