900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 用python+selenium抓取豆瓣电影中的正在热映前12部电影并按评分排序

用python+selenium抓取豆瓣电影中的正在热映前12部电影并按评分排序

时间:2022-09-25 08:06:50

相关推荐

用python+selenium抓取豆瓣电影中的正在热映前12部电影并按评分排序

抓取豆瓣电影(/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 8def setUp(self): 9 self.dr = webdriver.Chrome()10 self.top_movie_list = self.get_douban_movies_top12()11 self.movie = self.get_movie_top12_file()12 13def get_douban_movies_top12(self):14 '''获取豆瓣电影成都地区正在上映的前12部电影名字及评分'''15 self.dr.get("/nowplaying/chengdu/")16 sleep(3)17 movie_list = []#定义空list为后面存放电影名字和电影评分作准备18 i = 019 while i < 60: #12*5=6020 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])#向空list追加插入获取的电影名字和电影评分23 i += 5 #每个电影的li标签间隔为5个24 movie_list.sort(key=lambda x:x[1], reverse=True)#利用sort中key方法来根据电影评分高到低对所获取的电影进行排序(movie_list =sorted(movie_list, key=lambda movie: movic[1], reverse=True) # sort by movie_grand倒序)25 return movie_list26 27def get_movie_top12_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 34def test_movie(self):35 pass36 print("获取完毕")37 38def tearDown(self):39 self.dr.quit()40 41 if __name__ == '__main__':42unittest.main()

注:电影中暂无评分记为0分。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。