Python 爬虫批量下载美剧 from 人人影视 HR-HDTV
来源:互联网 发布:mac翻墙用什么软件好 编辑:程序博客网 时间:2024/04/30 05:00
本人比较喜欢看美剧,尤其喜欢人人影视上HR-HDTV 的 1024 分辨率的高清双字美剧,这里写了一个脚本来批量获得指定美剧的所有 HR-HDTV 的 ed2k下载链接,并按照先后顺序写入到文本文件,供下载工具进行批量下载。比如用迅雷,先打开迅雷,然后复制所有下载链接到剪切板,迅雷会监视剪切板来新建所有任务,如果迅雷没有自动监视,可以自己点击新建然后粘贴链接。Python源代码如下,用的是Python3 :
# python3 实现,下面的实例 3 部美剧爬完大概要 10 simport urllib.requestimport redef get_links(url, name='yyets'): data = urllib.request.urlopen(url).read().decode() pattern = '"(ed2k://\|file\|[^"]+?\.(S\d+)(E\d+)[^"]+?1024X\d{3}[^"]+?)"' linksfind = set(re.findall(pattern, data)) linksdict = {} total = len(linksfind) for i in linksfind: linksdict[int(i[1][1:3]) * 100 + int(i[2][1:3])] = i with open(name + '.txt', 'w') as f: for i in sorted(list(linksdict.keys())): f.write(linksdict[i][0] + '\n') print(linksdict[i][0]) print("Get download links of: ", name, str(total))if __name__ == '__main__': #---------- 越狱、无耻之徒、权力的游戏--------------------------- get_links('http://www.yyets.com/resource/10004', 'prision_break') get_links('http://www.yyets.com/resource/10760', 'shameless') get_links('http://www.yyets.com/resource/d10733','Game_of_Thrones') print('All is okay!')这个 python 爬虫比较短,就用到了 urllib.request 和 re 这两个模块,前者负责抓取网页,后者负责解析文本。人人影视并没有限制爬虫访问,所以这里无需修改 HTTP head的 User-Agent ,对于某些屏蔽爬虫的网页,就需要修改下 User-Agent 这个值了。一个做法如下:用 urllib.request 中 Request 类的构造函数构造一个 Request 对象,构造函数中给自己给 headers (字典)中 User-Agent 属性 赋值,然后将这个对象传入到本模块的 urlopen() 中,就可以将爬虫伪装成一个浏览器进行网页抓取了。比如,CSDN 就是屏蔽了爬虫的,需要修改一下 User-Agent 的值,如下:
import urllib.requesturl = 'http://blog.csdn.net/csdn'head={'User-Agent': 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)'}req = urllib.request.Request(url, headers=head)data = urllib.request.urlopen(req, timeout=2).read().decode()print(data)
抓取完网页就是对 HTML 文档的解析了,这里使用的是正则表达式模块,对于特定单一的内容非常方便。如果需要较复杂的解析可以用 pyquery 或者 Beautiful Soup, 它们是用Python写的 HTML/XML 的解析器,其中 pyquery 是 jquery 风格,更加的好用。
关于正则表达式这里推荐一个工具 RegexBuddy ,拥有强大的正则表达式调试功能,上面脚本中的正则表达式就使用了这个工具进行调试,这篇关于Python正则的博文很不错: Python 正则表达式指南。
想进一步加强爬虫的功能,可以用爬虫框架 Scrapy,这是 Scrapy 的官方tutoria 。还有就是,如果网页内容多是 javascript 生成,那么就需要一个 js 引擎了,PyV8 可以拿来试试,再有就是基于 js 做爬虫,如用 casperJS 和 phantomJS.
【地址:http://blog.csdn.net/thisinnocence/article/details/39997883】
1 0
- Python 爬虫批量下载美剧 from 人人影视 HR-HDTV
- Node.js 爬虫批量下载美剧 from 人人影视 HR-HDTV
- python 爬虫批量下载图片
- 人人影视自动签到Python脚本
- 利用python批量下载美拍视频
- 利用python 批量下载美拍视频
- 用Python 爬虫批量下载PDF文档
- 【Python】网络爬虫-批量下载图片
- 用python爬虫批量下载pdf
- YYets人人美剧
- Python 3 爬虫之批量下载字帖图片
- Python爬虫——人人好友相册自动下载(一)
- Python爬虫——人人好友相册多线程下载(二)
- 将人人网上的首页网主头像下载下来 (Python爬虫)
- 批量下载炫美PPT
- 从零开始写Python爬虫 --- 1.7 爬虫实践: 排行榜小说批量下载
- 人人相册爬虫--python细节复习
- python 爬虫 自动登录人人网
- Winform中TreeView不同级节点设不同右键菜单
- 打完包后出现一个闪退问题
- 第一章总结
- 选择排序
- Xcode6编译SDWebImage报错解决方法(SDWebImageDownloaderOperation.m错误)
- Python 爬虫批量下载美剧 from 人人影视 HR-HDTV
- 问题及代码
- 基于Message的进程间通信实例
- IQueryFilter.whereclause的SQL语句设置规则
- 常用排序算法之性能比较
- 如何通过sql准确查出一天的数据
- 命令行关闭开启和删除驱动服务
- 信息安全属性CIA
- Android View坐标getLeft, getRight, getTop, getBottom