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
| #coding=utf-8
from selenium import webdriver
import unittest
from time import sleep
class DoubanMovie(unittest.TestCase):
def setUp(self):
self.dr = webdriver.Chrome()
self.top_movie_list = self.get_douban_movies_top12()
self.movie = self.get_movie_top12_file()
def get_douban_movies_top12(self):
'''获取豆瓣电影成都地区正在上映的前12部电影名字及评分'''
self.dr.get("https://movie.douban.com/nowplaying/chengdu/")
sleep(3)
movie_list = []#定义空list为后面存放电影名字和电影评分作准备
i = 0
while i < 60: #12*5=60
movie_name = self.dr.find_elements_by_css_selector('.lists li').get_attribute('data-title')#定位电影名字
movie_grand = self.dr.find_elements_by_css_selector('.lists li').get_attribute('data-score')#定位电影评分
movie_list.append([movie_name,movie_grand])#向空list追加插入获取的电影名字和电影评分
i += 5 #每个电影的li标签间隔为5个
movie_list.sort(key=lambda x:float(x[1]), reverse=True)#利用sort中key方法来根据电影评分高到低对所获取的电影进行排序(sorted(movie_list, key=lambda movie: movic[2], reverse=True) # sort by movie_grand 倒序)
return movie_list
def get_movie_top12_file(self):
self.file_title = '豆瓣电影成都地区正在上映的前12部电影'
self.file = open(self.file_title + '.txt', 'wb')
for item in self.top_movie_list:
self.file.write(('电影名字:' + item[0] + ' ' + '电影评分:' + item[1] + '\n').encode('utf-8'))
self.file.close()
def test_movie(self):
pass
print("获取完毕")
def tearDown(self):
self.dr.quit()
if __name__ == '__main__':
unittest.main()
|