標籤:write ever case sts div select 豆瓣 span close
抓取豆瓣電影(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 = 019 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 += 524 movie_list.sort(key=lambda y:float(y[1]), reverse=True)#利用sort根據電影評分高到低對所擷取的電影進行排序25 return movie_list26 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 pass36 print("擷取完畢")37 38 def tearDown(self):39 self.dr.quit()40 41 if __name__ == ‘__main__‘:42 unittest.main()
註:電影中暫無評分記為0分。
用python+selenium抓取豆瓣電影中的正在熱映前12部電影並按評分排序