(转)在aardio中调用python来采集电源资源站电影地址

By admin at 2019-07-26 • 1人收藏 • 308人看过

这个代码忘了是aar群里谁发的, 抛开他采集的东西不说, 这个代码还是值得学习的, 

import win.ui;
import fonts.fontAwesome;
/*DSG{{*/
var uvform = win.form(text="aardio form";right=719;bottom=375;bgcolor=0;border="none";exmode="none";mode="popup")
uvform.add(
listview={cls="listview";left=0;top=0;right=720;bottom=344;aw=1;bgcolor=0;border=1;color=16777215;edge=1;font=LOGFONT(h=-19);gridLines=1;vscroll=1;z=3};
plus={cls="plus";text='\uF0E2更新';left=320;top=344;right=400;bottom=376;color=16777215;font=LOGFONT(h=-19;name='FontAwesome');notify=1;z=1};
plus2={cls="plus";text='\uF00D关闭';left=456;top=344;right=520;bottom=376;color=16777215;font=LOGFONT(h=-19;name='FontAwesome');notify=1;z=2}
)
/*}}*/

//灵感来自http://www.htmlayout.cn/t/228(分享一个播放.m3u8后缀网络视频的软件),可以加入aPlayer,采集后直接播放
import style.player;
import fsys.ini
var uv33ini=fsys.ini("\playlist\33uv.ini")

uvform.plus.skin(style.player.stop);
uvform.plus2.skin(style.player.stop);
uvform.listview.insertColumn("序号",50);
uvform.listview.insertColumn("电影名称",150);
uvform.listview.insertColumn("电影地址",415);
uvform.listview.insertColumn("更新日期",100);

var updatebox=function(){
    
    var secs=uv33ini.getSectionNames();
	
	for(i=1;#secs;1){
		var item_table={i;secs[i];uv33ini.read(secs[i],"Url");uv33ini.read(secs[i],"Updated")};
		uvform.listview.addItem(item_table,i);
		
	
	}
	
}
updatebox();

pyCode=/*
import aardio
import requests
from urllib.parse import urljoin
import os,time,random
from lxml import etree
from time import sleep
#import configparser
#returnRes=[]

def rand_header(ref_url):
    user_agent_list = [ \
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1" \
        "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11", \
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6", \
        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6", \
        "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1", \
        "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5", \
        "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5", \
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3", \
        "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3", \
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3", \
        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3", \
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3", \
        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3", \
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3", \
        "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3", \
        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3", \
        "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24", \
        "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"
    ]
    ua = random.choice(user_agent_list)
    headers = {'User-Agent': ua, "Referer": ref_url}
    return headers


def xtr(url):
    header=rand_header(url)
    resp_content=requests.get(url,headers=header).content
    sleep(1)#防止太快,也没做异常处理
    return etree.HTML(resp_content)
start_url='http://156zy.co/?m=vod-type-id-16.html'
def go(url):
    print('Let\'s Go...,Have a cup of coffee')
    #tempRes=[]
    #config=configparser.ConfigParser()
    
    for i in range(1,7):#此处控制页面数,默认1-6
        if i==1:
            url_0=url
        else:
            url_0="http://156zy.co/?m=vod-type-id-16-pg-{}.html".format(i)
        xpa=xtr(url_0)
        items_url=xpa.xpath("//div[@class='xing_vb']/ul/li/span/a/@href")
        items_url=[urljoin('http://156zy.co/?m=vod-type-id-16.html',x) for x in items_url]
        for url in items_url:
            xpa0=xtr(url)
            subName=xpa0.xpath("//div[@class='vodh']/h2/text()")
            subUpdate=xpa0.xpath("//div[@class='vodinfobox']/ul/li[8]/span/text()")
            subUrls=xpa0.xpath("//li/input/@value")
            aardio.write2ini(subName[0],"Url",subUrls[1])
            aardio.write2ini(subName[0],"Updated",subUpdate[0])
            #tempRes.append([subName[0],subUrls[0],subUpdate[0]])
            #config.add_section(subName[0])
                   
            
            
            #config.set(subName[0],"Url",subUrls[1]+"#"+subUrls[0])
            #config.set(subName[0],"Update",subUpdate[0])
            
                       
                       
        break#注销此语句,将更新6页
    #config.write(open("./playlist/33uv.ini","w",encoding="utf-8") )
    print('Well Done')
    #return tempRes

returnRes=go(start_url)
            
    




*/






uvform.plus.oncommand = function(id,event){
    import console;
	console.setTitle("获取信息中....耐心等待") 
	import py; //导入py之前,要打开console,这样python的print才有效
	py.appendPath("\res\Lib\site-packages\") //要将额外的requests,urllib3和lxml库文件放到该目录,发布后也需要放。
	//注意对应的库版本,可以从网上直接下载对应版本的whl文件,解压然后拷贝过去。
	//更新开始后不就,程序好像会卡住,不知道是不是PY导致的。可以另外单独做成一个更新程序 
  	py.export.aardio ={ 
		write2ini = function(s,k,u){ 
		uv33ini.write(s,k,u);
				} 
	}
	
	
   	py.exec(pyCode)
   
   	
   	console.close();
      //console.pause(true)
    updatebox()
   
}


uvform.plus2.oncommand = function(id,event){
	uvform.close();
}
uvform.show();


win.loopMessage();
return uvform;


登录后方可回帖

登 录
信息栏
本站永久域名:HtmLayout.Cn
纯私人站,当笔记本用的,学到哪写到哪,目前正在学aardio+halcon机器视觉.
本 站 主 站:Stm32cube中文网
Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
aardio在线手册Aardio在线手册
Htmlayout皮肤Htmlayout皮肤引擎介绍
黑猫Aar教程网:简码编程
C大Aardio论坛:Aar爱好者论坛
AARDIO语言QQ群:70517368
赞助商:才仁机械
下载站:非凡软件站
Loading...