使用you-get进行视频爬取

链接为you-get的使用说明。
https://github.com/soimort/you-get/wiki

you-get是利用python3写的,所以可以进行pip install you-get 进行安装。
注意及时更新,pip install –upgrade you-get

仅需使用视频网页的链接,就可以进行视频的下载。支持国内外主流视频网站。
you-get 下载的视频需要进行合并,建议是 ffmpeg。但是本人使用是,会出现不能自动合并的情况,这里需要后面研究。

视频爬取程序的基本流程是,
1,确定了爬取优酷的视频,并手动寻找了合适的视频资源进行 you-get 下载验证。这里需要提出的是,部分视频节目会跳转到另外的网站上面,本人是尽量选择优酷自己的资源。这样做工作量比较大,后期需要验证跳转网页下载的可行性。
2,利用 urllib.request.urlopen(url) ,抓取网页内容。取得网页内容之后使用 BeautifulSoup 进行网页分析,提取想要得到的 a 标签和对应的 href 标签 url 内容。提取到目标视频的 url 之后保存或者直接交到下载器,用 python 操作 cmd ,直接进行命令行的下载操作。这里的问题是对一些视频跳转的 url 进行正则提取,以获取我们需要的 url.

遇到的问题:
videoName = urllib.parse.quote(videoName)
这里,没有进行此处转换,后面会报错。应该是字符类型转化的问题,一直没有弄懂。

divNode = soup.find(‘div’,class_=’s_items’)
bs4 进行节点操作。非常方便的进行节点的提取和内容的提取。但是记不住如何使用,在这里进行备注。

vUrl = urllib.parse.urljoin(url,vUrl)
这里进行 url 补全,非常方便的操作。

matchUrl = re.match(r’http://.+http://(.+?)\&’,vUrl)
在这里进行正则,提取想要的 url

n = os.system(cmd1)
这里进行 cmd 的操作。

with open(‘1.txt’,’r’) as lines:
进行读写操作。

rootPath = sys.path[0]
os.path.exists(path)
os.makedirs(path)
获取当前地址,并判断是否存在,进行新建。
以上进行 url 获取的过程可以使用 scrapy 进行,但肯定比较复杂,但是却可以练手。

ffmpeg -f concat -i filelist.txt -c copy name.mp4
you-get 调用 ffmpeg 合并时,会出错。通过一下方式解决:
1.注意要合并的文件名中不能有空格,否则会出错。
2.在 “-i” 之前添加 “-safe 0” 可以忽略掉相对地址造成的错误。
ffmpeg -f concat -safe 0 -i filelist.txt -c copy name.mp4

你可能感兴趣的:(python学习,生活随笔)