基于Python编程语言,打造一个爱奇艺热播好剧提前搜系统[Python基础]

python

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

以下文章来源于Python爬虫与数据挖掘 ,作者:Python进阶者

 

项目目标

通过选择爱奇艺电影选项,我们可以将优质的电影信息打印到文本框供自己查看,然后自己去观看。

依赖工具

开发工具sublime text 3,360浏览器。

实现步骤

下面我们先看下软件运行主界面,比较简单:

 

下面小编就来跟大家讲下具体的实现步骤。

打开网页,F12分析:

 

可以看到,它是由一个ul标签包裹,多个li子标签构成,所以我们可以这样做:

 

这样就拿到了,所有影片的名字 主演和评分,就能方便我们直观的查看电影状况,再决定看哪一部。

其实还有一种比较有逼格的写法,就是用正则匹配。

def parse_page(self,html):

#编译页面电影内容正则

pattern = re.compile("<li.*?qy-mod-li.*?text-score">(.*?)<.*?title.*?>(.*?)<.*?title.*?>(.*?)<", re.S)

items = re.findall(pattern, html) #查找

for item in items:

yield {

"Movie_Name": item[1], #电影名

"Movie_actor": item[2].strip()[3:], #演员

"Movie_score": item[0] #评分

}

选择哪种方法随你挑,适合自己的才是最好的,哈哈哈!

然后,我们可以写个gui界面将我们所想要的结果显示在界面上,因为我们这次使用的是下拉列表框选择选项然后显示结果,我们需要使用一个新的gui组件 combobox组件,于是,可以这样写:

class gui:

def__init__(self):

self.root=tk.Tk()

self.root.title("爱奇艺热播好剧提前搜v1.0")

self.root.geometry("700x600")

self.lb=tk.Label(self.root,text="请选择搜索类型")

self.tt=tk.Text(self.root,width=40,height=30)

self.cb=ttk.Combobox(self.root, width=12)

self.cb["values"]=("请选择-----","综合排序","热播榜","好评榜","新上线") #设置下拉列表框的内容

self.cb.current(0) #将当前选择状态置为0,也就是第一项

self.cb.bind("<<ComboboxSelected>>",self.go) #绑定go函数,然后触发事件

self.lb.place(x=30,y=30) #组件位置

self.cb.place(x=154,y=30)

self.tt.place(x=30,y=60,width=400,height=600)

self.root.mainloop() #主页面

这样就写好了,然后我们还可以将数据写入到文本文件。

def write_to_file(self,content):

with open("movie.txt", "a", encoding="utf8")as f:

f.write(json.dumps(content, ensure_ascii=False) + "

") #写入文件

因为yield 出的结果使用json好读取些,而且具有格式化的功能,所以可以先把文件先转为json格式,这样就可以了。

然后我们编写下拉列表框的函数,使得它选择选项时出现对应的结果。

#下拉列表框事件

def go(self,*arg):

if self.cb.get()=="请选择-----":

self.tt.delete("1.0","end")

elif self.cb.get()=="综合排序":

self.tt.delete("1.0","end")

self.main("https://list.iqiyi.com/www/1/-------------24-1-1-iqiyi--.html")

elif self.cb.get()=="热播榜":

self.tt.delete("1.0","end")

self.main("https://list.iqiyi.com/www/1/-------------11-1-1-iqiyi--.html")

elif self.cb.get()=="好评榜":

self.tt.delete("1.0","end")

self.main("https://list.iqiyi.com/www/1/-------------8-1-1-iqiyi--.html")

elif self.cb.get()=="新上线":

self.tt.delete("1.0","end")

self.main("https://list.iqiyi.com/www/1/-------------4-1-1-iqiyi--.html")

这里要注意的是,因为我们每次选择不同,所以在选择第二个选项时必须清楚前一个选项所显示的结果。

最后,我们执行主函数,完成这些操作。

#主函数

def main(self,url):

html = self.get_page(url)

for item in self.parse_page(html):

self.tt.insert("insert",item)#将内容插入到文本框

self.tt.insert("insert","

")

self.tt.update() #更新内容

self.write_to_file(item) #内容写入文件

我们可以看到效果图如下:

 

小结

本文基于Python编程语言,打造了一个爱奇艺热播好剧提前搜系统,方法行之有效,欢迎小伙伴们积极尝试。本项目对于初学者来说还是比较友好的,希望可以帮到大家。学无止境,一起加油!

以上是 基于Python编程语言,打造一个爱奇艺热播好剧提前搜系统[Python基础] 的全部内容, 来源链接: utcz.com/z/529924.html

回到顶部