本人比較喜欢看美剧。尤其喜欢人人影视上HR-HDTV 的 1024 分辨率的高清双字美剧,这里写了一个脚本来批量获得指定美剧的全部 HR-HDTV 的 ed2k下载链接。并依照先后顺序写入到文本文件,供下载工具进行批量下载。比方用迅雷。先打开迅雷,然后复制全部下载链接到剪切板,迅雷会监视剪切板来新建全部任务。假设迅雷没有自己主动监视,能够自己点击新建然后粘贴链接。Python源码例如以下。用的是Python3

# python3 实现,以下的实例 3 部美剧爬完大概要 10 s
import urllib.request
import re def 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.request

url = '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】

Python 爬虫批量下载美剧 from 人人影视 HR-HDTV的更多相关文章

  1. Node.js 爬虫批量下载美剧 from 人人影视 HR-HDTV

    这两天发现了一个叫看知乎的站点.是知乎的苏莉安做的,当中爬虫使用的 Node.js.这里就针对上一篇博客中的美剧小爬虫,改用 nodejs 进行实现一下.体验一下强大的 Node.js. 假设之前没实 ...

  2. Python爬虫爬取美剧网站

    一直有爱看美剧的习惯,一方面锻炼一下英语听力,一方面打发一下时间.之前是能在视频网站上面在线看的,可是自从广电总局的限制令之后,进口的美剧英剧等貌似就不在像以前一样同步更新了.但是,作为一个宅diao ...

  3. Python爬虫批量下载糗事百科段子,怀念的天王盖地虎,小鸡炖蘑菇...

    欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华 ...

  4. from appium import webdriver 使用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium)

    使用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium) - 北平吴彦祖 - 博客园 https://www.cnblogs.com/stevenshushu/p ...

  5. python爬虫之下载文件的方式总结以及程序实例

    python爬虫之下载文件的方式以及下载实例 目录 第一种方法:urlretrieve方法下载 第二种方法:request download 第三种方法:视频文件.大型文件下载 实战演示 第一种方法: ...

  6. python爬虫脚本下载YouTube视频

    python爬虫脚本下载YouTube视频 爬虫 python YouTube视频 工作环境: python 2.7.13 pip lxml, 安装 pip install lxml,主要用xpath ...

  7. python图片爬虫 - 批量下载unsplash图片

    前言 unslpash绝对是找图的绝佳场所, 但是进网站等待图片加载真的令人捉急, 仿佛是一场拼RP的战争 然后就开始思考用爬虫帮我批量下载, 等下载完再挑选, 操作了一下不算很麻烦, 顺便也给大家提 ...

  8. python多线程批量下载远程图片

    python多线程使用场景:多线程采集, 以及性能测试等 . 数据库驱动类-简单封装下 mysqlDriver.py #!/usr/bin/python3 #-*- coding: utf-8 -*- ...

  9. Python/Django 批量下载Excel

    一.前提 项目上需求的变更总是时时发生的,应对需求的我们,也只能变更我们代码,所以.继前两篇之后,我们的批量下载诞生了 二.安装 本文使用zipstream库进行压缩,安装方式:pip install ...

随机推荐

  1. for循环中的break与continue

    break: 跳出循环,执行for循环下面的语句.continue: 跳出本次循环,执行下次循环.

  2. Python学习手冊笔记

    之前为了编写一个svm分词的程序而简单学了下Python.认为Python非常好用.想深入并系统学习一下,了解一些机制,因此開始阅读<Python学习手冊(第三版)>. 假设仅仅是想高速入 ...

  3. vim设置文本宽度

    'textwidth' 'tw'        number  (default 0)                        local to buffer                   ...

  4. kindle paperwhite3 连不上WIFI解决方法

    确定能连接上其它的设备比如手机.如果是密码没错,路由器也正常,但是你还是连接不上,那就跟我之前遇到一样了.你先让你的kpw连接一次,不要动,再检查下你路由器连接的客户端列表(我的是在DHCP服务器一栏 ...

  5. 苹果开发小记(一):NSString 的比较用法

    转自:http://blog.sina.com.cn/s/blog_897dd7be0100teh6.html 做了几个月的苹果,很多的思想方法都可以遵循一定规律来做的.NSString 比较字符串, ...

  6. MSVC與CRT的恩怨情仇

    很久沒有寫程式設計入門知識的相關文章了,這篇文章要來談談程式庫 (Library) 連結,以及關於 MSVC 與 CRT 之間的種種恩怨情仇. 如果你使用的作業系統是 Linux.Mac 或其他非 W ...

  7. LeetCode: Populating Next Right Pointers in Each Node 解题报告

    Populating Next Right Pointers in Each Node TotalGiven a binary tree struct TreeLinkNode {      Tree ...

  8. c++之—— lambda表达式(有个未能解决的问题等待大佬解答)——(在stack overflow找到了答案)

    谓词: 谓词是一个可调用的表达式,其返回结果是一个能用作条件的值.标准库算法所使用的谓词分为两类:一元谓词,意味着它只接受单一参数:二元谓词,意味着它有两个参数.接受谓词参数的算法对输入序列中的元素调 ...

  9. 【Visual Studio】控制台程序运行时一闪而过

    问题:写一个C#控制台程序,运行时控制台一闪而过.程序结束.无法看清控制台输出的结果. 办法: 方法一二三都有人写过百度经验了:怎么解决VS运行程序一闪而过 其实还有一种办法,就是把控制台程序改为Wi ...

  10. valgrind: failed to start tool 'memcheck' for platform 'amd64-linux

    valgrind运行错误 问题描述 valgrind运行时,无法找到相关工具文件,具体报错如下 valgrind: failed to start tool 'memcheck' for platfo ...