博主在学习python爬虫后,实现了一个爬取豆瓣电影评分并形成柱状图,并下载电影海报,实现效果如图所示
python爬取电影信息需要按此步骤 模拟浏览器发送请求(获取网页代码)->提取有用的数据->存放于数据库或文件中 首先需要分析获取数据的url 此时打开其headers 访问这个url
https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=20&page_start=0
网上都是分析其起始页的方式循环访问,这种方式较为麻烦,我们可以修改其每页条数 至此,访问的url便获取成功了
接下来便是编写代码来访问了
def get_data():
url = 'https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=330&page_start=0'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36'
}
json_data = requests.get(url,headers = headers)
print(json_data.content)
print(json_data.text)
data = json_data.text
json_data = json.loads(data)
subjects = json_data['subjects']
result = []
for movie in subjects:
row = {
'movie_rate': movie['rate'],
'movie_name': movie['title'],
'movie_url' : movie['url'],
'movie_img': movie['cover']
}
result.append(row)
return result
调用获取数据,进行图片下载,图片命名为电影名称.jpg
data=get_data()
for x in data[0:20]:
r = requests.get(x['movie_img'])
with open('./images/'+x['movie_name']+'.jpg', 'wb') as f:
f.write(r.content)
引入刚刚的test模块,使用pyechart来进行数据视图显示
from pyecharts import Bar
import test
data=test.get_data()
columns=[]
data1=[]
for x in data[0:14]:
columns.append(x['movie_name'])
data1.append(x['movie_rate'])
print(columns)
bar = Bar("柱状图", "影片评分")
bar.add('评分',columns, data1,is_stack=True)
bar.render()
至此,我们通过python爬取的数据的过程便完成了,通过我们爬取的数据我们可以做数据分析,或者将数据信息保存到我们的数据库,文件中供我们使用。
|