环境


  python2.7 pycharm

  课题:Python爬取视频(桌面版)---爬虫,桌面程序应用
  优点:语法简洁,入门快,代码少,开发效率高,第三方库   1.图形用户界面---GUI
  2.爬虫,爬取视屏下载
  3.结合,展现在GUI   正则表达式:想要的东西 表达形式 模型
  匹配findall(正则表达式,源码)
  知识点:
  1.如何创建一个窗口
  2.如何进行填充 滚动条 点击按钮 文本框
  3.解决网站禁止爬虫---加上头部信息(浏览器),伪装浏览器进行访问
  4.打开网页获取源码 requests
  5.获取视频 名称
  6.下载并且展示

代码

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: benjaminYang
from Tkinter import *
from ScrolledText import ScrolledText #文本滚动条
import urllib,requests
import re
import threading #多线程处理与控制
#import time #
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" ) url_name=[] #url+name
a=1 #页数
def get():
global a #改变全局变量
hd={
'User - Agent': 'Mozilla / 5.0(Windows NT 6.1;WOW64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 62.0.3202.94Safari / 537.36'
}
url='http://www.budejie.com/video/'+str(a)
varl.set('已经获取第%s页的视屏'%(a))
html=requests.get(url,headers=hd).text #发送get请求,获取源码
# print html #网站全部源码
url_content=re.compile(r'(<div class="j-r-list-c">.*?</div>.*?</div>)',re.S) #编译,提高效率,匹配换行符
url_contents=re.findall(url_content,html)
# print url_contents #视屏的名称+视屏的url
for i in url_contents:
url_reg=r'data-mp4="(.*?)">'
url_items=re.findall(url_reg,i)
# print url_items
if url_items:#如果有视屏存在,我就匹配名字,如果是图片,我就跳过
name_reg=re.compile(r'<a href="/detail-.{8}?.html">(.*?)</a>',re.S)
name_items=re.findall(name_reg,i)
# print name_items #列表中的中文是可迭代对象都是Unicode格式
for i,k in zip(name_items,url_items): #zip函数 将两个可迭代对象一一对应
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: #windows只能识别gbk 先将Unicode解码,然后再编码成gbk
urllib.urlretrieve(i[1],'video\\%s.mp4'%(i[0]).decode('utf-8').encode('gbk'))#下载的方法urlretrieve
text.insert(END,str(id)+'.'+i[1]+'\n'+i[0]+'\n')
url_name.pop(0) #删除一个元素
id+=1
varl.set('Hi:视频链接和视频抓取完毕,over!。。') def start():
th=threading.Thread(target=write())#实例一条线程
th.start() root=Tk() #实例化一个变量
root.title('fuck下载真操蛋')
text= ScrolledText(root,font=('微软雅黑',10))
text.grid()#实现布局的一种方法
button=Button(root,text='开始爬取',font=('微软雅黑',10),command=start) #按钮绑定start函数
button.grid() #按钮
varl=StringVar()#通过tk方法绑定一个变量
label=Label(root,font=('微软雅黑',10),fg='red',textvariable=varl)
label.grid()
varl.set('熊猫已经准备......')
root.mainloop() #创建窗口指令

演示:

爬虫练习二:GUI+下载百思不得姐网站视频的更多相关文章

  1. 利用Selenium和Browsermob批量嗅探下载Bilibili网站视频

    Rerence: http://www.liuhao.me/2016/09/20/selenium_browsermob_sniff_bilibili_video/ 日常生活中,用电脑看视频是非常频繁 ...

  2. 爬虫Scrapy框架-2爬取网站视频详情

     爬取视频详情:http://www.id97.com/ 创建环境: movie.py 爬虫文件的设置: # -*- coding: utf-8 -*- import scrapy from movi ...

  3. python爬虫:爬取网站视频

    python爬取百思不得姐网站视频:http://www.budejie.com/video/ 新建一个py文件,代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 ...

  4. python3爬虫(4)各种网站视频下载方法

    python3爬虫(4)各种网站视频下载方法原创H-KING 最后发布于2019-01-09 11:06:23 阅读数 13608 收藏展开理论上来讲只要是网上(浏览器)能看到图片,音频,视频,都能够 ...

  5. python爬虫公众号所有信息,并批量下载公众号视频

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 数据分析实战 PS:如有需要Python学习资料的小伙伴可以加点击 ...

  6. 使用you-get下载视频网站视频或其他

    使用you-get下载视频网站视频或其他 文/玄魂 目录 使用you-get下载视频网站视频或其他 前言 1.1 下载.安装 依赖 exe安装 pip安装 Antigen安装 Git 克隆源码 Hom ...

  7. Python 爬虫实例(13) 下载 m3u8 格式视频

    Python  requests  下载  m3u8 格式    视频 最近爬取一个视频网站,遇到  m3u8 格式的视频需要下载. 抓包分析,视频文件是多个  ts 文件,什么是 ts文件,请去百度 ...

  8. You-Get,多网站视频下载工具,非常方便

    You-Get是一个非常优秀的网站视频下载工具.使用You-Get可以很轻松的下载到网络上的视频.图片及音乐. 按Win+R键打开运行,输入cmd,再输入命令 pip install you-get, ...

  9. Adobe Edge Animate –修改Edge Commons Spotlight功能,使之能支持播放中国网站视频

    Adobe Edge Animate –修改Edge Commons Spotlight功能,使之能支持播放中国网站视频 版权声明: 本文版权属于 北京联友天下科技发展有限公司. 转载的时候请注明版权 ...

随机推荐

  1. 12 Django组件-forms组件

    forms组件 校验字段功能 针对一个实例:注册用户讲解. 模型:models.py class UserInfo(models.Model): name=models.CharField(max_l ...

  2. luoguP1726 上白泽慧音

    P1726 上白泽慧音 题目描述 在幻想乡,上白泽慧音是以知识渊博闻名的老师.春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄.因此慧音决定换一个能够聚集最多人数的村 ...

  3. Java Spring Controller 获取请求参数的几种方法

    技术交流群:233513714  1.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交.若"Content-Type"=& ...

  4. BitLocker:如何启用网络解锁

    TechNet 库Windows ServerWindows Server 2012 R2 和 Windows Server 2012服务器角色和技术安全和保护BitLockerBitLocker 中 ...

  5. flask 基础ssti注入

    源代码地址 (请用python2.7运行,python3有点出入) 注入点: 不是返回的静态模板而是反回模板字符串变得让客户端可以控制. XSS 这里直接 http://39.105.116.195: ...

  6. 上手Caffe(二)

    @author:oneBite本文简述如何在windows环境下,运行caffe的“hello world”例程体会适用caffe的流程:转换输入数据格式>在solver.prototxt中配置 ...

  7. 想玩API,这些套路我来告诉你!

    小伙伴是不是时常听说各种api接口的问题呢,可能许多人第一感觉:那是什么个玩意儿,那么多人回去研究它,今天思梦PHP小编就来为你揭开他的神秘的面纱,先看一下百度百科上面的官方的解释: 其实说白了就是为 ...

  8. Error: could not find java.dll 解决办法

    Error: could not find java.dll 问题: 安装配置Java环境变量后,在命令行中运行java -version进行测试时却出现下面的问题: Error: opening r ...

  9. CSS绘制三角形的原理剖析

    今天学习Bootstrap时候,看到按钮的向下三角形源码: .caret { display: inline-block; ; ; margin-left: 2px; vertical-align: ...

  10. 【bzoj4818】[Sdoi2017]序列计数 矩阵乘法

    原文地址:http://www.cnblogs.com/GXZlegend/p/6825132.html 题目描述 Alice想要得到一个长度为n的序列,序列中的数都是不超过m的正整数,而且这n个数的 ...