Python 爬虫批量下载美剧 from 人人影视 HR-HDTV
本人比較喜欢看美剧。尤其喜欢人人影视上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的更多相关文章
- Node.js 爬虫批量下载美剧 from 人人影视 HR-HDTV
这两天发现了一个叫看知乎的站点.是知乎的苏莉安做的,当中爬虫使用的 Node.js.这里就针对上一篇博客中的美剧小爬虫,改用 nodejs 进行实现一下.体验一下强大的 Node.js. 假设之前没实 ...
- Python爬虫爬取美剧网站
一直有爱看美剧的习惯,一方面锻炼一下英语听力,一方面打发一下时间.之前是能在视频网站上面在线看的,可是自从广电总局的限制令之后,进口的美剧英剧等貌似就不在像以前一样同步更新了.但是,作为一个宅diao ...
- Python爬虫批量下载糗事百科段子,怀念的天王盖地虎,小鸡炖蘑菇...
欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华 ...
- from appium import webdriver 使用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium)
使用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium) - 北平吴彦祖 - 博客园 https://www.cnblogs.com/stevenshushu/p ...
- python爬虫之下载文件的方式总结以及程序实例
python爬虫之下载文件的方式以及下载实例 目录 第一种方法:urlretrieve方法下载 第二种方法:request download 第三种方法:视频文件.大型文件下载 实战演示 第一种方法: ...
- python爬虫脚本下载YouTube视频
python爬虫脚本下载YouTube视频 爬虫 python YouTube视频 工作环境: python 2.7.13 pip lxml, 安装 pip install lxml,主要用xpath ...
- python图片爬虫 - 批量下载unsplash图片
前言 unslpash绝对是找图的绝佳场所, 但是进网站等待图片加载真的令人捉急, 仿佛是一场拼RP的战争 然后就开始思考用爬虫帮我批量下载, 等下载完再挑选, 操作了一下不算很麻烦, 顺便也给大家提 ...
- python多线程批量下载远程图片
python多线程使用场景:多线程采集, 以及性能测试等 . 数据库驱动类-简单封装下 mysqlDriver.py #!/usr/bin/python3 #-*- coding: utf-8 -*- ...
- Python/Django 批量下载Excel
一.前提 项目上需求的变更总是时时发生的,应对需求的我们,也只能变更我们代码,所以.继前两篇之后,我们的批量下载诞生了 二.安装 本文使用zipstream库进行压缩,安装方式:pip install ...
随机推荐
- xilinx 官方技术资料
http://china.xilinx.com/support/index.html/content/xilinx/zh/supportNav/ip_documentation.html
- ny71 独木舟的旅行
独木舟上的旅行时间限制:3000 ms | 内存限制:65535 KB难度:2描述进行一次独木舟的旅行活动,独木舟可以在港口租到,并且之间没有区别.一条独木舟最多只能乘坐两个人,且乘客的总重量不能 ...
- StarUML使用说明-指导手册
1.综述 StarUML是一种生成类图和其他类型的统一建模语言(UML)图表的工具.这是一个用Java语言描述的创建类图的简明手册. StarUML(简称SU),是一种创建UML类图,并能够自动生成J ...
- vue轮播图插件vue-awesome-swiper的使用与组件化
不管是APP还是移动端网页开发,轮播图在大部分项目当中都是存在的,这时候如果用vue开发项目,选择一款好的插件并且封装好是很重要的 1. 推荐使用vue-awesome-swiper 安装:cnpm ...
- HttpClient 教程 (五)
第五章 HTTP客户端服务 5.1 HttpClient门面 HttpClient接口代表了最重要的HTTP请求执行的契约.它没有在请求执行处理上强加限制或特殊细节,而在连接管理,状态管理,认证和处理 ...
- 【转】Java检测字符串是否有乱码
package cn.cnnic.ops.learn; import java.util.regex.Matcher;import java.util.regex.Pattern; public cl ...
- Hadoop副本数配置
一个文件,上传到hdfs上时指定的是几个副本就是几个.修改了副本数(dfs.replications),对已经上传了的文件也不会起作用.当然可以在上传文件的同时指定创建的副本数hadoop dfs - ...
- RTX——第12章 系统时钟节拍和时间管理
以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 本章节为大家讲解 RTX 操作系统的时钟节拍和时间管理函数,其中时间管理函数是 RTX 的基本函数,初学 ...
- java图片截取组件ImageIO
引用:http://blog.csdn.net/cdl2008sky/article/details/7775681 javax.imageio使用 ImageIO 类的静态方法可以执行许多常见的图像 ...
- Win10系统设置专用网络和公用网络
打开设置界面或者按Win+I组合键打开设置界面,打开后点击“网络和Internet”; 在网络和Internet界面,点击左侧“拔号”(有些是以太网),在右侧窗口点击“宽带连接”(大家基本都是以太网连 ...