• python爬取百思不得姐视频


    # _*_ coding:utf-8 _*_
    from Tkinter import *
    from ScrolledText import ScrolledText
    import urllib
    #import requests
    import urllib2
    #import pygame
    import re
    import threading
    import time
    
    url_name=[]#放置地址 名称
    a=1#代表页数
    def get():
        global a#改变全局变量
        hd={'User-Agent':'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'}
        url='http://www.budejie.com/video/'+str(a)
        varl.set('已经获取到第%s的视频'%a)
        opener=urllib2.build_opener()
        request=urllib2.Request(url,None,hd)
        result=opener.open(request).read()
        url_content=re.compile(r'(<div class="j-r-list-c">.*?</div>.*?</div>)',re.S)#re.S匹配换行符
        url_contents=re.findall(url_content,result)
        # for iterm in url_contents:
        #     print iterm
        url_reg = r'data-mp4="(.*?)">'
        for iterm in url_contents:
            url_items=re.findall(url_reg,iterm)
            #print url_items
            if url_items:#如果有视频存在,就匹配名字,如果是其他格式,则跳过
                name_reg=re.compile(r'<a .*?>(.*?)</a>',re.S)
                name_items=re.findall(name_reg,iterm)
                #print name_items
                for name,url in zip(name_items,url_items):
                    url_name.append([name,url])
                    print name,url
        return url_name
    id=1#视频个数
    def write():
        global id
        while id<10:
            url_name=get()#获取视频和名字
            for iterm in url_name:
                urllib.urlretrieve(iterm[1],'%s.mp4' % (iterm[0].decode('utf-8').encode('gbk')))#下载
                text.insert(END,str(id)+'.'+iterm[1]+'
    '+iterm[0]+'
    ')
                url_name.pop(0)#删除第一个元素
                id+=1
        varl.set('抓取完成')
    def start():
        th=threading.Thread(target=write)
        th.start()#运行线程
    
    root=Tk()
    root.title=('视频下载')
    text=ScrolledText(root,font=('微软雅黑',10))
    text.grid()#实现布局方法
    button=Button(root,text='开始爬取',font=('微软雅黑',10),command=start)
    button.grid()
    varl=StringVar()#通过tk方法绑定一个变量
    
    label=Label(root,font=('微软雅黑',10),fg='red',textvariable=varl)
    varl.set('熊猫已准备....')
    label.grid()
    root.mainloop()
    
    
    
    
  • 相关阅读:
    编写可测试的程序
    系统程序员成长计划序
    编写可移植C/C++程序的要点
    Android IPC机制详解
    WordPress Attack Scanner插件多个信息泄露漏洞
    WordPress Simple History Plugin RSS Feed 信息泄露漏洞
    WordPress Poll插件多个SQL注入漏洞
    WordPress yolink Search插件‘s’参数跨站脚本漏洞
    WordPress Poll插件跨站请求伪造漏洞
    Python 'stringobject.c'多个远程缓冲区溢出漏洞
  • 原文地址:https://www.cnblogs.com/superxuezhazha/p/6605186.html
Copyright © 2020-2023  润新知