现在可以根据分类抓取整个站点的pps链接了,理论上。大家自己看看吧,修正了一点bug,既然xargs有问题,索性不用xargs了,xargs的问题肯定没了。因为都没用到了。
代码: 全选
#!/bin/bash
#=====================================
#帮助pps for linux 更好的播放的小脚本。
#xzap xzap1982[at]gmail.com
#ver: 20090824v4
#======================一些设置===================
#pps for linux 的mplayer的地址
exe=~/usr/pps/mplayer
#抓取影片的数量。抓取几个页面的影片。
page=${1:-9}
#缓存的播放列表位置
templist=/tmp/ppslist$$
#======================开始代码========================
while :
do
category=`zenity --list --hide-column 1 --width 150 --height 300 --title "pps的简单的播放列表" --text "选择要播放影片的类别" --column "class" --column "分类" "555" "动作" "556" "喜剧" "557" "爱情" "558" "恐怖" "559" "科幻" "560" "动画" "561" "战争" "562" "纪录"`
if [ $? != 0 ]
then
[ -e $templist ]&&rm $templist
exit
fi
case $category in
555)fenlei="动作";;
556)fenlei="喜剧";;
557)fenlei="爱情";;
558)fenlei="恐怖";;
559)fenlei="科幻";;
560)fenlei="动画";;
561)fenlei="战争";;
562)fenlei="记录";;
esac
echo "抓取列表中,请稍等……"
[ -e $templist ]&&rm $templist
for (( i = 1; i < page; i++ )); do
let count=$page-$i
echo -n "$count"
wget http://kan.pps.tv/nlist/$category/$i.html -q -T 10 -O- 2>/dev/null | iconv -f gbk |grep -o /play/[0-9]*_*[0-9]*.*html\"\ target=\"_blank\"\>[^\u4E00-\u9FA50-9A-Za-z]**[^\u4E00-\u9FA50-9A-Za-z]*\<\/a|sed 's/<\/a//g'|sed 's/" target="_blank">/\n/g' >> $templist
echo -n ".. "
done 2>/dev/null
while :
do
url=`cat $templist|zenity --list --column "url" --column "$fenlei 分类中的影片" --hide-column 1 --width 200 --height 450 --title "pps的简单的播放列表" --text "选择要播放的影片" `
if [ $? != 0 ]
then
[ -e $templist ]&&rm $templist
break
fi
url=http://kan.pps.tv$url
echo "正在分析$url中的播放链接,请稍等……"
url2=`wget $url -q -T 10 -O- 2>/dev/null | iconv -f gbk|grep -o \(\'pps://[A-Za-z0-9]*.pps/[a-zA-Z0-9%].*|sed "s/('\(.*\)').*$/\1/g"|sed "s/').*$//g"`
if [ -z $url2 ]
then
echo "Sorry! 没有捕获播放地址。请手工从$url的源代码中查找pps的播放链接。"
else
echo "已经捕获播放地址$url2现在开始播放……"
sudo $exe $url2
wait
fi
done
done
忘说了,错误信息都被我屏蔽了,如果有问题就把屏蔽错误信息的删除掉。第40行的2>/dev/null 删除就可以了
好了又更新了下,现在ubuntu肯定可以用了,原来的问题在于ubuntu的grep不支持[A-z]这样的写法。只更新了上面的源码,没更新附件。下载附件的,请用A-Za-z替换掉A-z就可以了,vim里:%s/A-z/A-Za-z/g 就可以了。或者命令行sed -i 's/A-z/A-Za-z/g' filename ,或者就复制上面的源码粘帖过去吧。还有几个链接抓不到,等都修复了再更新附件吧
最后一次更新了。ubuntu下也测试OK了,链接也应该都能捕捉到了,这个pps for linux 看的时候,没几分钟就断线了,不知道怎么搞的,稳定性也太差了,所以决定不搞它了,等稳定了再说,下面放出最新的版本。上面的代码就不更新了。下载附件吧,优化了获取播放地址的代码,应该不会再有捕获失败的情况出现了,就这样。
貌似pps更新了,我这测试出来,不能用pps://xxx这样的格式了,改成tvod://xxx这样了。所以这个脚本貌似又不灵了
看几分钟断线的问题可能和我的openbox设置有关,我用gnome播放就很流畅,至于pps更新后改了链接的形式的解决办法就是不更新。用老的那个依然很流畅稳定的。官网已经下不到老的了我把压缩包放上来吧。代码里有一个失误,捕获列表那里,写成了1-9这样有0的就捕捉不到了,请改为0-9吧,上面的代码更新了。附件就算了吧,自己手动吧
附件传不上
原来是因为太大了,所以传不到这里。传到大米盘了。大家去那下载老版本吧
http://www.damipan.com/file/3D7amxO.html
装了新版的请删除之再装老的吧。
删除方法:
代码: 全选
rm /usr/lib/libpps*.so*
rm /etc/ppscdn_config.ini
viewtopic.php?f=21&t=223496