欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python几乎无所不能 只有你不知道的,如何通过Python玩转小视频

程序员文章站 2022-03-23 16:33:31
什么是爬虫? 就是抓取网页数据的程序 爬虫怎么抓取网页数据? 网页三大特征: 网页都有自己唯一的URL。 网页都是HTML来描述页面信息。 网页都使用http/https协议来传输HTML数据。 爬虫的设计思路: 获取视频ID 拼接完整url 获取视频播放地址 下载视频 模块使用 requests ......

 

什么是爬虫?

就是抓取网页数据的程序

爬虫怎么抓取网页数据?

网页三大特征:

  • 网页都有自己唯一的URL。
  • 网页都是HTML来描述页面信息。
  • 网页都使用http/https协议来传输HTML数据。

爬虫的设计思路:

  • 获取视频ID
  • 拼接完整url
  • 获取视频播放地址
  • 下载视频

模块使用 requests

安装“pip install requests”

Requests库的七个主要方法

python几乎无所不能 只有你不知道的,如何通过Python玩转小视频

 

找到单个视频播放地址

python几乎无所不能 只有你不知道的,如何通过Python玩转小视频

 

获取网页源代码

python几乎无所不能 只有你不知道的,如何通过Python玩转小视频

 

获取播放地址

python几乎无所不能 只有你不知道的,如何通过Python玩转小视频

 

下载视频

python几乎无所不能 只有你不知道的,如何通过Python玩转小视频

 

python几乎无所不能 只有你不知道的,如何通过Python玩转小视频
 
完整代码
 1 # -*- coding:utf-8 -*- 
 2 import requests
 3 from lxml import etree
 4 import re
 5 from urllib.request import urlretrieve
 6 #获取视频ID
 7 #拼接完整url
 8 #获取视频播放地址
 9 #下载视频
10 #Python学习交流群:125240963,群内每天分享干货,包括最新的python企业案例学习资料和零基础入门教程,欢迎各位小伙伴入群学习交流
11 
12 def download(url):
13     #url = 'http://www.pearvideo.com/category_9'
14     #获取源代码
15     #html = requests.get(url)
16     html = requests.get(url).text
17     #把文本文件处理成可解释的对象
18     #如果我用正则可以不可以也可以
19     html = etree.HTML(html)
20     video_id = html.xpath('//div[@class="vervideo-bd"]/a/@href')
21     video_url = []
22     starurl = 'http://www.pearvideo.com'
23     #完整拼接url
24     for id in video_id:
25         newurl = starurl + '/' + id
26         video_url.append(newurl)
27     #获取视频播放地址
28     for playurl in video_url:
29         #获取页面源代码
30         html = requests.get(playurl).text
31         #print(playurl)
32         req = 'srcUrl="(.*?)"'
33         #视频真正播放地址
34         purl = re.findall(req,html)
35         #print(purl)
36         #获取视频名称
37         req = '<h1 class="video-tt">(.*?)</h1>'
38         pname = re.findall(req,html)
39         print("正在下载:%s"%pname)
40 
41         urlretrieve(purl[0],'./video/%s.mp4'%pname[0])
42 #download()
43 
44 def downloadmore():
45     n = 12
46     while True:
47         if n > 48:
48             return
49         url = "http://www.pearvideo.com/category_loading.jsp?reqType=5&categoryId=9&star=%d"%n
50         n+=12
51         download(url)
52 downloadmore()