用python+selenium抓取豆瓣电影中的正在热映前12部电影并按评分排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用python+selenium抓取豆瓣电影中的正在热映前12部电影并按评分排序相关的知识,希望对你有一定的参考价值。
抓取豆瓣电影(http://movie.douban.com/nowplaying/chengdu/)中的正在热映前12部电影,并按照评分排序,保存至txt文件
1 #coding=utf-8 2 from selenium import webdriver 3 import unittest 4 from time import sleep 5 6 class DoubanMovie(unittest.TestCase): 7 8 def setUp(self): 9 self.dr = webdriver.Chrome() 10 self.top_movie_list = self.get_douban_movies_top12() 11 self.movie = self.get_movie_rank_file() 12 13 def get_douban_movies_top12(self): 14 ‘‘‘获取豆瓣电影成都地区正在上映的前12部电影名字及评分‘‘‘ 15 self.dr.get("https://movie.douban.com/nowplaying/chengdu/") 16 sleep(3) 17 movie_list = [] 18 i = 0 19 while i < 60: 20 movie_name = self.dr.find_elements_by_css_selector(‘.lists li‘)[i].get_attribute(‘data-title‘)#定位电影名字 21 movie_grand = self.dr.find_elements_by_css_selector(‘.lists li‘)[i].get_attribute(‘data-score‘)#定位电影评分 22 movie_list.append([movie_name,movie_grand]) 23 i += 5 24 movie_list.sort(key=lambda y:float(y[1]), reverse=True)#利用sort根据电影评分高到低对所获取的电影进行排序 25 return movie_list 26 27 def get_movie_rank_file(self): 28 self.file_title = ‘豆瓣电影成都地区正在上映的前12部电影‘ 29 self.file = open(self.file_title + ‘.txt‘, ‘wb‘) 30 for item in self.top_movie_list: 31 self.file.write((‘电影名字:‘ + item[0] + ‘ ‘ + ‘电影评分:‘ + item[1] + ‘\\n‘).encode(‘utf-8‘)) 32 self.file.close() 33 34 def test_movie(self): 35 pass 36 print("获取完毕") 37 38 def tearDown(self): 39 self.dr.quit() 40 41 if __name__ == ‘__main__‘: 42 unittest.main()
注:电影中暂无评分记为0分。
以上是关于用python+selenium抓取豆瓣电影中的正在热映前12部电影并按评分排序的主要内容,如果未能解决你的问题,请参考以下文章
用python+selenium抓取豆瓣读书中最受关注图书,按照评分排序
用python+selenium抓取豆瓣读书中最受关注图书,按照评分排序