0

0

Python编写简单网络爬虫抓取视频

不言

不言

发布时间:2018-04-18 15:34:14

|

7820人浏览过

|

来源于php中文网

原创

从上一篇文章的评论中看出似乎很多童鞋都比较关注爬虫的源代码。所有本文就使用python编写简单网络爬虫抓取视频下载资源做了很详细的记录,几乎每一步都介绍给大家,希望对大家能有所帮助

我第一次接触爬虫这东西是在今年的5月份,当时写了一个博客搜索引擎,所用到的爬虫也挺智能的,起码比电影来了这个站用到的爬虫水平高多了!

回到用Python写爬虫的话题。

Python一直是我主要使用的脚本语言,没有之一。Python的语言简洁灵活,标准库功能强大,平常可以用作计算器,文本编码转换,图片处理,批量下载,批量处理文本等。总之我很喜欢,也越用越上手,这么好用的一个工具,一般人我不告诉他。。。

因为其强大的字符串处理能力,以及urllib2,cookielib,re,threading这些模块的存在,用Python来写爬虫就简直易于反掌了。简单到什么程度呢。我当时跟某同学说,我写电影来了用到的几个爬虫以及数据整理的一堆零零散散的脚本代码行数总共不超过1000行,写电影来了这个网站也只有150来行代码。因为爬虫的代码在另外一台64位的黑苹果上,所以就不列出来,只列一下VPS上网站的代码,tornadoweb框架写的 :)

立即学习Python免费学习笔记(深入)”;

[xiaoxia@307232 movie_site]$ wc -l *.py template/*
  156 msite.py
   92 template/base.html
   79 template/category.html
   94 template/id.html
   47 template/index.html
   77 template/search.html

下面直接show一下爬虫的编写流程。以下内容仅供交流学习使用,没有别的意思。

以某湾的最新视频下载资源为例,其网址是

http://某piratebay.se/browse/200

因为该网页里有大量广告,只贴一下正文部分内容:

对于一个python爬虫,下载这个页面的源代码,一行代码足以。这里用到urllib2库。

>>> import urllib2
>>> html = urllib2.urlopen('http://某piratebay.se/browse/200').read()
>>> print 'size is', len(html)
size is 52977

当然,也可以用os模块里的system函数调用wget命令来下载网页内容,对于掌握了wget或者curl工具的同学是很方便的。

使用Firebug观察网页结构,可以知道正文部分html是一个table。每一个资源就是一个tr标签。

而对于每一个资源,需要提取的信息有:

1、视频分类
2、资源名称
3、资源链接
4、资源大小
5、上传时间

就这么多就够了,如果有需要,还可以增加。

首先提取一段tr标签里的代码来观察一下。


  
   
视频
(电视)

The Walking Dead Season 3 Episodes 1-3 HDTV-x264

@@##@@ @@##@@@@##@@@@##@@ 已上传 3 分钟前, 大小 2 GiB, 上传者 paridha 0 0

下面用正则表达式来提取html代码中的内容。对正则表达式不了解的同学,可以去 http://docs.python.org/2/library/re.html 了解一下。

为何要用正则表达式而不用其他一些解析HTML或者DOM树的工具是有原因的。我之前试过用BeautifulSoup3来提取内容,后来发觉速度实在是慢死了啊,一秒钟能够处理100个内容,已经是我电脑的极限了。。。而换了正则表达式,编译后处理内容,速度上直接把它秒杀了!

提取这么多内容,我的正则表达式要如何写呢?

根据我以往的经验,“.*?”或者“.+?”这个东西是很好使的。不过也要注意一些小问题,实际用到的时候就会知道 Python编写简单网络爬虫抓取视频

对于上面的tr标签代码,我首先需要让我的表达式匹配到的符号是

表示内容的开始,当然也可以是别的,只要不要错过需要的内容即可。然后我要匹配的内容是下面这个,获取视频分类。

稿定AI绘图
稿定AI绘图

稿定推出的AI绘画工具

下载

(电视)

接着我要匹配资源链接了,

...

再到其他资源信息,

font class="detDesc">已上传 3 分钟前, 大小 2 GiB, 上传者

最后匹配

大功告成!

当然,最后的匹配可以不需要在正则表达式里表示出来,只要开始位置定位正确了,后面获取信息的位置也就正确了。

对正则表达式比较了解的朋友,可能知道怎么写了。我Show一下我写的表达式处理过程,

Python编写简单网络爬虫抓取视频

就这么简单,结果出来了,自我感觉挺欢喜的。

当然,这样设计的爬虫是有针对性的,定向爬取某一个站点的内容。也没有任何一个爬虫不会对收集到的链接进行筛选。通常可以使用BFS(宽度优先搜索算法)来爬取一个网站的所有页面链接。

完整的Python爬虫代码,爬取某湾最新的10页视频资源:

# coding: utf8
import urllib2
import re
import pymongo
db = pymongo.Connection().test
url = 'http://某piratebay.se/browse/200/%d/3'
find_re = re.compile(r'.+?\(.+?">(.+?).+?class="detLink".+?">(.+?).+?(.+?), 大小 (.+?),', re.DOTALL)
# 定向爬去10页最新的视频资源
for i in range(0, 10):
    u = url % (i)
    # 下载数据
    html = urllib2.urlopen(u).read()
    # 找到资源信息
    for x in find_re.findall(html):
        values = dict(
            category = x[0],
            name = x[1],
            magnet = x[2],
            time = x[3],
            size = x[4]
        )
        # 保存到数据库
        db.priate.save(values)
print 'Done!'

以上代码仅供思路展示,实际运行使用到mongodb数据库,同时可能因为无法访问某湾网站而无法得到正常结果。

所以说,电影来了网站用到的爬虫不难写,难的是获得数据后如何整理获取有用信息。例如,如何匹配一个影片信息跟一个资源,如何在影片信息库和视频链接之间建立关联,这些都需要不断尝试各种方法,最后选出比较靠谱的。

曾有某同学发邮件想花钱也要得到我的爬虫的源代码。
要是我真的给了,我的爬虫就几百来行代码,一张A4纸,他不会说,坑爹啊!!!……

都说现在是信息爆炸的时代,所以比的还是谁的数据挖掘能力强 Python编写简单网络爬虫抓取视频

好吧,那么问题来了学习挖掘机(数据)技术到底哪家强?Python编写简单网络爬虫抓取视频:)

相关推荐:

Python编写的通知栏脚本启动工具

python编写图形界面如何利用aardio实现

:D:D:D:D

相关文章

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

3

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

1

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

5

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

7

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

30

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

3

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

2

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

3

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 0.6万人学习

Django 教程
Django 教程

共28课时 | 2.6万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.0万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号