python下载电影
1. 怎样用python爬取豆瓣电影
推荐you-get工具包,pip可以直接下载安装
2. python能爬电影吗
可以爬电影的。你想看什么电影?我能找到
3. 在哪里可以在线看或下载电影巨蟒与圣杯monty python
使用网络网盘免费分享给你链接:https://pan..com/s/1m0CPCYDrZDJAzD3O6p0iBg
《巨蟒与圣杯》是AsociaceCeskýchFilmovýchKlubu发行的喜剧片,由特里·吉列姆执导,格雷厄姆·查普曼、约翰·克里斯、艾瑞克·爱都、特里·吉列姆、特瑞·琼斯、麦克·帕林主演,该片于1975年4月3日在英国上映。该片的剧情取材于中世纪英亚瑟王的传说,讲述了阿瑟王和圆桌武士们接受上帝的旨意去寻找圣杯传说的故事。
4. Python抓取豆瓣电影排行榜压缩包
1.观察url
首先观察一下网址的结构 p250?start=0&filter=&type= :
可以看到,问号?后有三个参数 start、filter、type,其中start代表页码,每页展示25部电影,0代表第一页,以此类推25代表第二页,50代表第三页...
filter顾名思义,是过滤已经看过的电影,filter和type在这里不重要,可以不管。
2.查看网页源代码
打开上面的网址,查看源代码,可以看到信息的展示结构如下:
1 <ol class="grid_view"> 2 <li> 3 <div class="item"> 4 <div class="pic"> 5 <em class="">1</em> 6 <a href="ht.com/subject/1292052/"> 7 <img alt="肖申克的救赎" src="hster_cover/ipst/public/p480747492.jpg" class=""> 8 </a> 9 </div>10 <div class="info">11 <div class="hd">12 <a href="han.com/subject/1292052/" class="">13 <span class="title">肖申克的救赎</span>14 <span class="title"> / The Shawshank Redemption</span>15 <span class="other"> / 月黑高飞(港) / 刺激1995(台)</span>16 </a>17 18 19 <span class="playable">[可播放]</span>20 </div>21 <div class="bd">22 <p class="">23 导演: 弗兰克·德拉邦特 Frank Darabont 主演: 蒂姆·罗宾斯 Tim Robbins /...<br>24 1994 / 美国 / 犯罪 剧情25 </p>26 27 28 <div class="star">29 <span class="rating5-t"><em>9.6</em></span>30 <span>646374人评价</span>31 </div>32 33 <p class="quote">34 <span class="inq">希望让人自由。</span>35 </p>36 </div>37 </div>38 </div>39 </li>
其中<em class="">1</em>代表排名,<span class="title">肖申克的救赎</span>代表电影名,其他信息的含义也很容易能看出来。
于是接下来可以写正则表达式:
1 pattern = re.compile(u'<div.*?class="item">.*?<div.*?class="pic">.*?' 2 + u'<em.*?class="">(.*?)</em>.*?' 3 + u'<div.*?class="info">.*?<span.*?class="title">(.*?)' 4 + u'</span>.*?<span.*?class="title">(.*?)</span>.*?' 5 + u'<span.*?class="other">(.*?)</span>.*?</a>.*?' 6 + u'<div.*?class="bd">.*?<p.*?class="">.*?' 7 + u'导演: (.*?) ' 8 + u'主演: (.*?)<br>' 9 + u'(.*?) / (.*?) / '10 + u'(.*?)</p>'11 + u'.*?<div.*?class="star">.*?<em>(.*?)</em>'12 + u'.*?<span>(.*?)人评价</span>.*?<p.*?class="quote">.*?'13 + u'<span.*?class="inq">(.*?)</span>.*?</p>', re.S)
在此处flag参数re.S代表多行匹配。
3.使用面向对象的设计模式编码
代码如下:
1 # -*- coding:utf-8 -*- 2 __author__ = 'Jz' 3 import urllib2 4 import re 5 import sys 6 7 class MovieTop250: 8 def __init__(self): 9 #设置默认编码格式为utf-810 reload(sys)11 sys.setdefaultencoding('utf-8')12 self.start = 013 self.param = '&filter=&type='14 self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64)'}15 self.movieList = []16 self.filePath = 'D:/coding_file/python_file/File/DoubanTop250.txt'17 18 def getPage(self):19 try:20 URL = 'ht.com/top250?start=' + str(self.start)21 request = urllib2.Request(url = URL, headers = self.headers)22 response = urllib2.urlopen(request)23 page = response.read().decode('utf-8')24 pageNum = (self.start + 25)/2525 print '正在抓取第' + str(pageNum) + '页数据...' 26 self.start += 2527 return page28 except urllib2.URLError, e:29 if hasattr(e, 'reason'):30 print '抓取失败,具体原因:', e.reason31 32 def getMovie(self):33 pattern = re.compile(u'<div.*?class="item">.*?<div.*?class="pic">.*?'34 + u'<em.*?class="">(.*?)</em>.*?'35 + u'<div.*?class="info">.*?<span.*?class="title">(.*?)'36 + u'</span>.*?<span.*?class="title">(.*?)</span>.*?'37 + u'<span.*?class="other">(.*?)</span>.*?</a>.*?'38 + u'<div.*?class="bd">.*?<p.*?class="">.*?'39 + u'导演: (.*?) '40 + u'主演: (.*?)<br>'41 + u'(.*?) / (.*?) / '42 + u'(.*?)</p>'43 + u'.*?<div.*?class="star">.*?<em>(.*?)</em>'44 + u'.*?<span>(.*?)人评价</span>.*?<p.*?class="quote">.*?'45 + u'<span.*?class="inq">(.*?)</span>.*?</p>', re.S)46 while self.start <= 225:47 page = self.getPage()48 movies = re.findall(pattern, page)49 for movie in movies:50 self.movieList.append([movie[0], movie[1], movie[2].lstrip(' / '),
51 movie[3].lstrip(' / '), movie[4],
52 movie[5], movie[6].lstrip(), movie[7], movie[8].rstrip(),53 movie[9], movie[10], movie[11]])54 55 def writeTxt(self):56 fileTop250 = open(self.filePath, 'w')57 try:58 for movie in self.movieList:59 fileTop250.write('电影排名:' + movie[0] + '\r\n')60 fileTop250.write('电影名称:' + movie[1] + '\r\n')61 fileTop250.write('外文名称:' + movie[2] + '\r\n')62 fileTop250.write('电影别名:' + movie[3] + '\r\n')63 fileTop250.write('导演姓名:' + movie[4] + '\r\n')64 fileTop250.write('参与主演:' + movie[5] + '\r\n')65 fileTop250.write('上映年份:' + movie[6] + '\r\n')66 fileTop250.write('制作国家/地区:' + movie[7] + '\r\n')67 fileTop250.write('电影类别:' + movie[8] + '\r\n')68 fileTop250.write('电影评分:' + movie[9] + '\r\n')69 fileTop250.write('参评人数:' + movie[10] + '\r\n')70 fileTop250.write('简短影评:' + movie[11] + '\r\n\r\n')71 print '文件写入成功...'72 finally:73 fileTop250.close()74 75 def main(self):76 print '正在从豆瓣电影Top250抓取数据...'77 self.getMovie()78 self.writeTxt()79 print '抓取完毕...'80 81 DouBanSpider = MovieTop250()82 DouBanSpider.main()
代码比较简单,最后将信息写入一个文件,没有什么需要解释的地方。
5. 谁知道BT怎么用详细点,有没有什么好的种子网站下电影的
http://bt.btchina.net/
简单介绍BT
春风来,千树万树梨花开.BT之流行比之当年江湖的流行有过之而无不及
BT英文意思是比特流.融汇客户端的带宽,把文件分成碎块然后汇聚成为下载链产生的壮观的速度,这让我们想到中国的一句古诗“飞流直下三千尺 疑是银河落九天 ”
下载的人越多,文件越大,速度就越快,而且只要普通的电脑,一根ADSL电话线就可以安装BT服务器。
首先感谢SEK的信任与支持,本版得以创立,
本版目的在于介绍与推广BT交流BT技术与BT资源,
BT可以说是一个新东西,因为确有很多人不知道BT为何物,出来的时间也不长
也可以不算什么新东西了,因为现在的BT站很多,而且很多也做的很大了
下面我简单明了的介绍一下BT为何物(对象为从没听说过BT为何物者)
BT是一种下载与交流文件的方式,是下载服务与P2P文件交流的协议及其软体
BT在下载的同时利用多个客户端的上行带宽组成下载链
(通常带宽分为上行与下行,我们的上行带宽基本闲置)
同时把要下载的文件分成碎片在这个虚拟的下载链上高速的传输.
BT下载不需要占用服务器的带宽,只要利用客户端闲置的资源聚少成多
与传统的下载方式相比:
BT下载绝不会拖垮服务器
传统下载是人越多越慢,BT下载是人越多越快
传统下载是文件越大越慢(所以很多空间商限制文件大小),而BT下载是文件越大越快.
传统下载害怕盗链,而BT下载是欢迎盗链
传统下载对服务器要求很好,而BT下载对服务要求不是很高,普通的电脑就可以做出高性能的BT服务器
传统下载对线路带宽要求很高,而BT只要普通的xDSL宽带即可架站
BT目前存在的问题
BT的官方版本用python语言编写,python语言编程快捷开发速度快有很好的跨平台性能,可是他号称运行最慢的一种编程语言,在windows上更是受限一些服务端用
BT的服务端用phthon以及CGI/ASP/PHP等脚本编写,配置复杂,要配置虚拟机,配置TRACK服务器,配置WEB服务器与发布程序等,有经验的站长初站接触一开始也会弄的晕头转向
BT的客户端与传统下载工具使用方式不一样,大多又是英文(现在已经有了很多汉化版本),而BT处于发展阶段,导致客户端占用资源大运行不稳定以及存在一些问题等
BT的文件不存在于服务器上,所以时间较长的没有种子用户连接会导致断档,这就形成了BT只有最新最热门的软件最好下载这样一种现象
合理的理解与运用BT
作为程序员与站长,我们去解决BT存在的问题,推出更易于使用的软件
作为用户,应当认识到BT的适用范围,认识到BT的优点,合理使用
在很多的时候,BT让我们更快速的下载与交流文件。我们不再需要担心交费,不再担心服务器会垮了
BT不会取代传统的下载方式,但是他的神奇应当可以让我们去接授之使用他
BT不行吗?
有些人下载了BT用了一下马上扔掉了:“唉下载不了,下载这么慢........”
其实BT在下载开始,并不会立即下载,而是扫描分析几分钟,然后逐渐从慢到快
而BT下载的速度还会受到下载这个文件的人气的影响
(反过来想,越是好的受欢迎的大的文件,下载速度就越快,而这正是传统的下载方式所害怕的,我们下载不到我们最喜欢的最新的东西,我们望洋兴叹,但是有了BT,一切如此轻松,我们要拒绝BT吗?当然不会)
而且些人讹传BT损伤硬盘云云:用BT下文件下的快方便,所以拼命下,一个G一个G的狂拉,就算是你不用BT你的硬盘我怕也受不了(基本上我用普通的下载工具去试1G以上的文件,很多都是电脑死机),所以要合理的使用
我如何做一个BT的站点或者说服务器:
如果是以前,或许我给你看一大堆长长的教程,然后教你下载各种虚拟机支持软件,教你配置方法,不过现在很简单,使用MYBT服务端,一些如此简单
·MYBT服务器用C++语言编写内核,稳定速度快,并针对windows作了大量优化
·首个使用中文的图性界面的BT服务器,一键安装,管理程序与服务程序分开运行,有效提高了服务器性能.内置web服务器,不需要配置虚拟机,不需要复杂的复杂,一个EXE,一键搞定BT站点.
·完全免费,功能不受任何限制,任何普通电脑,亦通ADSL都可以运行MyBT建立站
演示:http://BT.1HE.NET:6969
下载:http://BT.1HE.NET/mybt-server.exe
适用操作系统:NT系统(如win2000/winxp/win2003)
这个软件没有帮助,因为他根本不需要帮助
下载以后自解压,点击“一键安装服务器”就全部OK
你可以在图形界面轻松自定义各种设置,也可以自已修改界面与CSS样式
我如何种用BT下载文件或发布文件
您可以下载 MYBT下载工具 MyBT客户端综合了最新的流行的BT客户端开发,
界面友好,中文环境,支持多任务,断点续传,自动发布种子等功能,运行稳定,速度快.兼容所有BT站点
简体版下载:http://BT.1HE.NET/mybt.exe
繁体版下载:http://BT.1HE.NET/MyBT_big5.exe
我到哪里下载BT或发布BT文件
你可以自已建站,也可以到http://BT.1HE.NET:6969下载或上传BT文件
这里内置BT机器人,会每天到互联网搜索最新最热门的BT下载生成索引
目前国内的BT站点很多,以后我们会整理推荐
我在哪里能找到BT的帮助与资源
在MYBT客户端有一个帮助文档(开始菜单-->MYBT下载-->帮助)综合整理了网络上较全的中文BT帮助与参考,有兴趣的可以看看
6. python怎么抓取豆瓣电影url
#!/usr/bin/env python2.7# encoding=utf-8"""
爬取豆瓣电影TOP250 - 完整示例代码
"""import codecsimport requestsfrom bs4 import BeautifulSoup
DOWNLOAD_URL = 'httn.com/top250/'def download_page(url):
return requests.get(url, headers={ 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36'
}).contentdef parse_html(html):
soup = BeautifulSoup(html)
movie_list_soup = soup.find('ol', attrs={'class': 'grid_view'})
movie_name_list = [] for movie_li in movie_list_soup.find_all('li'):
detail = movie_li.find('div', attrs={'class': 'hd'})
movie_name = detail.find('span', attrs={'class': 'title'}).getText()
movie_name_list.append(movie_name)
next_page = soup.find('span', attrs={'class': 'next'}).find('a') if next_page: return movie_name_list, DOWNLOAD_URL + next_page['href'] return movie_name_list, Nonedef main():
url = DOWNLOAD_URL with codecs.open('movies', 'wb', encoding='utf-8') as fp: while url:
html = download_page(url)
movies, url = parse_html(html)
fp.write(u'{movies}\n'.format(movies='\n'.join(movies)))if __name__ == '__main__':
main()0414243444546474849505152
简单说明下,在目录下会生成一个文档存放电影名。python2
7. python抓取VIP电影违法吗
一般来说,抓取本身并不会违法。问题是,你把抓取的信息放在自己的网站/app里面,进行传播、引流、获利。因为你并不拥有这些内容的版权,直接使用很容易触犯相关法律法规。
简介:
Python是一种广泛使用的解释型、高级和通用的编程语言。Python由荷兰数学和计算机科学研究学会的Guido van Rossum创造,第一版发布于1991年,它是ABC语言的后继者,也可以视之为一种使用传统中缀表达式的LISP方言。
Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。
Python支持多种编程范型,包括函数式、指令式、结构化、面向对象和反射式编程。Python解释器易于扩展,可以使用C或C++(或者其他可以通过C调用的语言)扩展新的功能和数据类型。Python也可用于可定制化软件中的扩展程序语言。
Python拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且其本身拥有一个巨大而广泛的标准库,提供了适用于各个主要系统平台的源码或机器码。
8. python爬虫抓取电影top20排名怎么写
初步接触python爬虫(其实python也是才起步),发现一段代码研究了一下,觉得还比较有用处,Mark下。
上代码:
#!/usr/bin/python#coding=utf-8#Author: Andrew_liu#mender:cy"""
一个简单的Python爬虫, 用于抓取豆瓣电影Top前100的电影的名称
Anthor: Andrew_liu
mender:cy
Version: 0.0.2
Date: 2017-03-02
Language: Python2.7.12
Editor: JetBrains PyCharm 4.5.4
"""import stringimport reimport urllib2import timeclass DouBanSpider(object) :
"""类的简要说明
主要用于抓取豆瓣Top100的电影名称
Attributes:
page: 用于表示当前所处的抓取页面
cur_url: 用于表示当前争取抓取页面的url
datas: 存储处理好的抓取到的电影名称
_top_num: 用于记录当前的top号码
"""
def __init__(self):
self.page = 1
self.cur_url = "h0?start={page}&filter=&type="
self.datas = []
self._top_num = 1
print u"豆瓣电影爬虫准备就绪, 准备爬取数据..."
def get_page(self, cur_page):
"""
根据当前页码爬取网页HTML
Args:
cur_page: 表示当前所抓取的网站页码
Returns:
返回抓取到整个页面的HTML(unicode编码)
Raises:
URLError:url引发的异常
"""
url = self.cur_url try:
my_page = urllib2.urlopen(url.format(page=(cur_page - 1) * 25)).read().decode("utf-8") except urllib2.URLError, e: if hasattr(e, "code"): print "The server couldn't fulfill the request."
print "Error code: %s" % e.code elif hasattr(e, "reason"): print "We failed to reach a server. Please check your url and read the Reason"
print "Reason: %s" % e.reason return my_page def find_title(self, my_page):
"""
通过返回的整个网页HTML, 正则匹配前100的电影名称
Args:
my_page: 传入页面的HTML文本用于正则匹配
"""
temp_data = []
movie_items = re.findall(r'<span.*?class="title">(.*?)</span>', my_page, re.S) for index, item in enumerate(movie_items): if item.find(" ") == -1:
temp_data.append("Top" + str(self._top_num) + " " + item)
self._top_num += 1
self.datas.extend(temp_data) def start_spider(self):
"""
爬虫入口, 并控制爬虫抓取页面的范围
"""
while self.page <= 4:
my_page = self.get_page(self.page)
self.find_title(my_page)
self.page += 1def main():
print u"""
###############################
一个简单的豆瓣电影前100爬虫
Author: Andrew_liu
mender: cy
Version: 0.0.2
Date: 2017-03-02
###############################
"""
my_spider = DouBanSpider()
my_spider.start_spider()
fobj = open('/data/moxiaokai/HelloWorld/cyTest/blogcode/top_move.txt', 'w+') for item in my_spider.datas: print item
fobj.write(item.encode("utf-8")+'
')
time.sleep(0.1) print u"豆瓣爬虫爬取完成"if __name__ == '__main__':
main()
运行结果: