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

抓取豆瓣电影(http://movie.douban.com/nowplaying/chengdu/)中的正在热映前12部电影,并按照评分排序,保存至txt文件

#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‘)[i].get_attribute(‘data-title‘)#定位电影名字
            movie_grand = self.dr.find_elements_by_css_selector(‘.lists li‘)[i].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()

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

时间: 2024-10-10 07:04:06

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

用python+selenium抓取豆瓣读书中最受关注图书,按照评分排序

抓取豆瓣读书中的(http://book.douban.com/)最受关注图书,按照评分排序,并保存至txt文件中,需要抓取书籍的名称,作者,评分,体裁和一句话评论 #coding=utf-8 from selenium import webdriver from time import sleep class DoubanPopularBook:     def __init__(self):         self.dr = webdriver.Chrome()         self.

用python+selenium抓取微博24小时热门话题的前15个并保存到txt中

抓取微博24小时热门话题的前15个,抓取的内容请保存至txt文件中,需要抓取阅读数 #coding=utf-8 from selenium import webdriver import unittest from time import sleep class Weibo(unittest.TestCase): def setUp(self): self.dr = webdriver.Chrome() self.hot_list = self.get_weibo_hot_topic() sel

python爬虫抓取豆瓣电影

抓取电影名称以及评分,并排序(代码丑炸) 1 import urllib 2 import re 3 from bs4 import BeautifulSoup 4 def get(p): 5 t=0 6 k=1 7 n=1 8 book_score=[] 9 book_a=[] 10 while t<=p: 11 print "正在获取第%d页..."%k 12 k=k+1 13 url="https://movie.douban.com/tag/%s?start=%

用python+selenium抓取知乎今日最热和本月最热的前三个问题及每个问题的首个回答并保存至html文件

抓取知乎今日最热和本月最热的前三个问题及每个问题的首个回答,保存至html文件,该html文件的文件名应该是20160228_zhihu_today_hot.html,也就是日期+zhihu_today_hot.html 代码如下: from selenium import webdriver from time import sleep import time class ZhiHu():    def __init__(self):       self.dr = webdriver.Chr

1-1 用Python抓取豆瓣及IMDB上的电影信息

下面的代码可以抓取豆瓣及IMDB上的电影信息,由于每段代码使用的数据源自上一段代码输出的数据,所以需要按顺序执行. step1_getDoubanMovies.py 1 # -*- coding: utf-8 -*- 2 ''' 3 该脚本得到豆瓣上所有电影的如下信息: 4 "rate": "7.5", 5 "cover_x": 2000, 6 "is_beetle_subject": false, 7 "title

[Python爬虫] 之十:Selenium +phantomjs抓取活动行中会议活动(多线程抓取)

延续上个抓取活动行中会议活动的问题,上次使用是单线程的抓取,效率较低,现在使用多线程的抓取. 数据的抓取分为两个过程:首先获取每个关键字搜索结果对应的url和页数,保存在列表里面,这个过程用一个线程来实现(类似生产者),同时根据获取的关键字的url和页数,抓取对应的数据,这个过程用多线程来抓取(类似消费者) 这样整个抓取过程共用了144.366188 秒,采用单线程来进行抓取要用大概184秒,这样大概节省了40秒 具体代码如下: # coding=utf-8import osimport ref

抓取豆瓣的电影排行榜TOP100

1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 """ 4 一个简单的Python爬虫, 用于抓取豆瓣电影Top前100的电影的名称 5 Anthor: Andrew Liu 6 Version: 0.0.1 7 Date: 2014-12-04 8 Language: Python2.7.8 9 Editor: Sublime Text2 10 Operate: 具体操作请看README.md介绍 11 "&q

python实现爬虫(一)--- Scrapy框架抓取豆瓣书籍信息

Scrapy是一个用python实现都爬虫框架,简单易用,功能强大,只需要在框架的基础上自定义自己的分析规则即可,具体如何新建工程等待都在官方文档上面讲解得非常清楚,官方文档tutorial(http://doc.scrapy.org/en/latest/intro/tutorial.html)请保证下载较新版本的Scrapy(我的是0.24.2,scrapy -v)旧版本会出现一些问题. 下面我使用Scrapy抓取豆瓣上面编程书籍的一些简单信息 一.准备爬取的页面如下,新建一个douban工程

python爬虫——抓取电影天堂电影信息

做个小练习,抓取的是电影天堂里面最新电影的页面.链接地址:http://www.dytt8.net/html/gndy/dyzz/index.html 首先我们需要获取里面电影详情的网页地址: import urllib2 import os import re import string # 电影URL集合 movieUrls = [] # 获取电影列表 def queryMovieList(): url = 'http://www.dytt8.net/html/gndy/dyzz/index