我是靠谱客的博主 包容雪碧,这篇文章主要介绍Python爬虫之爬取豆瓣电影(二),现在分享给大家,希望可以做个参考。

上一篇爬取到了5000多部电影的信息 ,并把电影数据保存到了movies中,其中每一项都是一个字典,包含评分rate,电影标题title,详情页URL,封面图片链接,豆瓣电影编号id等,此时我需要进一步爬取各个电影的对应的详情页,其中各个信息。导演,简介,语言,片长等

首先遍历movies中的每一个url,请求url进入每部电影的详情页,分别获取其简介
这里写图片描述

看代码:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# coding=utf-8 import urllib import urllib2 import json import sys import time from bs4 import BeautifulSoup reload(sys) sys.setdefaultencoding('utf-8') # 获取所有标签 url = 'https://movie.douban.com/j/search_tags?type=movie&source=' request = urllib2.Request(url=url) response = urllib2.urlopen(request,timeout=20) result = response.read() # 加载json为字典 result = json.loads(result) tags = result['tags'] # 定义一个列表存储电影的基本信息 movies = [] # 处理每一个tag for tag in tags: start = 0 # 不断请求每一页,直到返回结果为空 空 说明遍历的此tag下的电影已经没了 while True: # 此时遍历每一个标签每个标签的请求参数需要拼接, 包括标签和开始编号 url = 'https://movie.douban.com/j/search_subjects?type=movie&tag='+tag+'&sort=recommend&page_limit=20&page_start='+str(start) print url request = urllib2.Request(url=url) response = urllib2.urlopen(request,timeout=20) result =response.read() result = json.loads(result) # 先在浏览器中请求上面的API,观察json的结构 # 然后在python中取出自己想要的数据 result = result['subjects'] # 返回结果为空的话,说明已经没有数据了 # 完成一个标签的处理退出循环 if len(result) ==0: break # 将每一条数据加入movies中 for item in result: movies.append(item) # 使用的循环条件得修改条件 #这里需要修改start start += 20 # 看看一共获得了多少电影 print len(movies) # 将获取每部电影的详情页 # 请求每部电影的详情页 for x in xrange(0,len(movies)): url = movies[x]['url'] request = urllib2.Request(url=url) response = urllib2.urlopen(request,timeout=20) result = response.read() # 使用BeautifulSoup解析HTML html = BeautifulSoup(result) # 提取电影简介 # 捕捉异常,有的电影详情页中并没有电影简介 try: description = html.find_all("span",attrs={"property":"v:summary"})[0].get_text() except Exception,e : # 没有提取到简介,则简介为空 movies[x]['description'] = '' else: movies[x]['description'] = description finally: pass # 适当休息,避免请求频发被禁止,报403 Forbidden错误 time.sleep(0.5)

以上代码可以获取详情页面的每一步电影简介。
这里写图片描述

最后

以上就是包容雪碧最近收集整理的关于Python爬虫之爬取豆瓣电影(二)的全部内容,更多相关Python爬虫之爬取豆瓣电影(二)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部