概述
#-*- coding:utf-8 -*-
'''
先在D盘下创建一个demo的文件夹
'''
from Tkinter import *
from ScrolledText import ScrolledText#文本滚动条
import urllib,requests
import re
import threading
import time
'''
爬虫部分
'''
url_name = []
a = 1#页面
def get():
global a
hd = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'}
url = 'http://www.budejie.com/video/'+str(a)
html = requests.get(url,headers=hd).text
# values.set('已经获取%s页视频'%(a))
ref = re.compile(r'(<div class="j-r-list-c">.*?</div>.*?</div>)',re.S)
res = re.findall(ref,html)
for i in res :
url_reg = re.compile(r'data-mp4="(.*?)">')
url_items = re.findall(url_reg, i)
if url_items:
url_title = re.findall(r'<a href="/detail-d{8}.html">(.*?)</a>', i)
for i,k in zip(url_title,url_items):
url_name.append([i,k])
# print i,k
return url_name
id = 1
def write():
global id
while id<10:
url_name = get()
for i in url_name:
# print i[0]
urllib.urlretrieve(i[1],'E:/demo/%s.mp4'%id)
text.insert(END,str(id)+'.'+i[0]+'n'+i[1]+'n')
url_name.pop(0)
id+=1
def start():
th = threading.Thread(target=write)
th.start()
# if __name__ == '__main__':
# write()
'''
GUI 界面构造
'''
root = Tk()#实例化一个对象
root.title('GUI_Demo')
text = ScrolledText(root,font=('微软雅黑',10))
text.grid()#实现复杂布局
button = Button(root,text = '开始爬取',font=('微软雅黑',10),command = start)
button.grid()
values = StringVar()#通过tk方法绑定一个 变量
lable = Label(root,font=('微软雅黑',10),fg ='red',textvariable= values)
values.set('Demo——一开始执行')
lable.grid()
root.mainloop()#创建窗口指令
GUI部分 不怎么懂·· 也还没看到
下载网络视频时 使用的 urllib.urlretrieve() 这个方法
urlretrieve(url, filename
=
None
, reporthook
=
None
, data
=
None
)
- 参数 finename 指定了保存本地路径(如果参数未指定,urllib会生成一个临时文件保存数据。)
- 参数 reporthook 是一个回调函数,当连接上服务器、以及相应的数据块传输完毕时会触发该回调,我们可以利用这个回调函数来显示当前的下载进度。
- 参数 data 指 post 到服务器的数据,该方法返回一个包含两个元素的(filename, headers)元组,filename 表示保存到本地的路径,header 表示服务器的响应头。
使用到了多线程 threading.Thread(target=)
然后使用star方法开启线程
requests 是一个请求网络连接的第三方库·· QwQ 应该是吧 ···
可以模拟GET 和 POST 请求 (TwT 其他的不常用···)
使用headers 来设置请求头信息 (一般设置User - Agent 这个是模拟使用浏览器的头信息··)
re正则的话 用到的 贪婪和非贪婪 TwT 简单的记住.*?少食多餐(非贪婪匹配) .*暴饮暴食(贪婪匹配)
最后
以上就是清秀小海豚为你收集整理的python2.7爬虫——配合简单的GUI的全部内容,希望文章能够帮你解决python2.7爬虫——配合简单的GUI所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复