Ⅰ 豆瓣电影TOP250是怎么评出来的为什么有些分那么高,在top250中确看不到
投票评出来的呗,豆瓣上评分有的很水的,文青装13的太多,看不懂的就给高分了,《无法触碰》跟《三傻》能有9分多,我笑了,稍注意下就能发现了纯爱恋情类的分数都比较高,亚洲人就喜欢这类,什么爱情啊,背叛啊,这也能上top250,还真250
Ⅱ 如何在豆瓣上找到评分较高的电影
可以观看豆瓣电影TOP250,都是看得人多,备受好评的影片。当然有一些比较精彩,由于没有足够的人去评分,容易被忽略。
Ⅲ 抓取豆瓣网上的精彩电影剧照的小方法
抓取豆瓣网上的精彩电视剧剧照的小方法,你可以用截图软件或录屏软件来操作
Ⅳ 如何抓取豆瓣上的电影
在豆瓣电影搜索框里输上名字,点搜索以后出来的页面右侧会出来“豆瓣电影还没有,我来添加”,然后就填名字就行了 没有imbd编号也没事,填完了以后会有审核,几天之后会豆邮通知你是否添加成功
Ⅳ 你们都是从哪里找电影资源的喜欢看豆瓣高分电影,不知道该从哪里找资源
可以通过以下几种方式进行查找资源:(可以按照电影名称收拾)
1、网络知道(https://..com)
搜片源的时候,先网络一下这谁都知道,但广告满天飞也是真的烦人,总结了一下以往能网络出来资源出处,惊人发现!!真正有资源的有效链接基本藏在网络知道里!!
SO,为什么不直接在网络知道里搜呢??瞬间高效!
优点:一些河蟹资源、老剧、偏门的剧,特别多!尤其是一些外国小众电影,在这里搜!有惊喜!!
缺点:新剧比较少,尤其是一些版权保护的,即便有,链接也很容易失效,毕竟是一个敞开门面的地方嘛……大家懂的。
PS:搜的时候搜“片名+网盘”,基本你想要的就有了~!如:搜“穆赫兰道 网盘”
推荐指数:4星★★★★
Ⅵ 怎样避开豆瓣对爬虫的封锁,从而抓取豆瓣上电影内容
在互联网中,有网络爬虫的地方,绝对少不了反爬虫的身影。网站反爬虫的拦截前提是要正确区分人类访问用户和网络机器人,当发现可疑目标时,通过限制IP地址等措施阻止你继续访问。爬虫该如何突破反爬虫限制?
一、构建合理的HTTP请求头
HTTP的请求头是在你每次向网络服务器发送请求时,传递的一组属性和配置信息。由于浏览器和Python爬虫发送的请求头不同,有可能被反爬虫检测出来。
二、设置cookie的学问
Cookie是一把双刃剑,有它不行,没它更不行。网站会通过cookie跟踪你的访问过程,如果发现你有爬虫行为会立刻中断你的访问,比如你特别快的填写表单,或者短时间内浏览大量页面。而正确地处理cookie,又可以避免很多采集问题,建议在采集网站过程中,检查一下这些网站生成的cookie,然后想想哪一个是爬虫需要处理的。
三、正常的时间访问路径
合理控制采集速度,是Python爬虫不应该破坏的规则,尽量为每个页面访问时间增加一点儿间隔,可以有效帮助你避免反爬虫。
四、使用http
对于分布式爬虫和已经遭遇反爬虫的人来说,使用http将成为你的首选。Ipidea分布地区广,可满足分布式爬虫使用需要。支持api提取,对Python爬虫来说再适合不过。
Ⅶ 如何用python爬取豆瓣top250
importstring
importre
importurllib2
classDouBanSpider(object):
def__init__(self):
self.page=1
self.cur_url="http://movie.douban.com/top250?start={page}&filter=&type="
self.datas=[]
self._top_num=1
defget_page(self,cur_page):
url=self.cur_url.format(page=(cur_page-1)*25)
my_page=urllib2.urlopen(url).read().decode("utf-8")
returnmy_page
deffind_title(self,my_page):
temp_data=[]
movie_items=re.findall(r'<span.*?class="title">(.*?)',my_page,re.S)
forindex,iteminenumerate(movie_items):
ifitem.find("")==-1:
temp_data.append("Top"+str(self._top_num)+""+item)
self._top_num+=1
self.datas.extend(temp_data)
defstart_spider(self):
whileself.page<=4:
my_page=self.get_page(self.page)
self.find_title(my_page)
self.page+=1
defmain():
my_spider=DouBanSpider()
my_spider.start_spider()
foriteminmy_spider.datas:
printitem
main()</span.*?class="title">
Ⅷ Python抓取豆瓣电影排行榜
1.观察url
首先观察一下网址的结构 http://movie.douban.com/top250?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="http://movie.douban.com/subject/1292052/"> 7 <img alt="肖申克的救赎" src="http://img3.douban.com/view/movie_poster_cover/ipst/public/p480747492.jpg" class=""> 8 </a> 9 </div>10 <div class="info">11 <div class="hd">12 <a href="http://movie.douban.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 = 'http://movie.douban.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()
代码比较简单,最后将信息写入一个文件,没有什么需要解释的地方。
Ⅸ 【初学者】R语言 rvest包 爬取豆瓣电影top250,使用data.frame合并结果时,行数不一样,无法合并
frame <- data.frame(x=c(1,2,3),
y=c(4,7,9))
if (3 %in% frame$x)
foo()