python day09 获取豆瓣电影top25集合

进阶,获取豆瓣top250的电影.评分,简评

运行结果

/Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 /Users/wjw/PycharmProjects/class9/豆瓣.py
[
<Movie:
  score = (9.6)
  name = (肖申克的救赎)
  quote = (希望让人自由。)
>, 
<Movie:
  score = (9.4)
  name = (这个杀手不太冷)
  quote = (怪蜀黍和小萝莉不得不说的故事。)
>, 
<Movie:
  score = (9.4)
  name = (阿甘正传)
  quote = (一部美国近现代史。)
>, 
<Movie:
  score = (9.4)
  name = (霸王别姬)
  quote = (风华绝代。)
>, 
<Movie:
  score = (9.5)
  name = (美丽人生)
  quote = (最美的谎言。)
>, 
<Movie:
  score = (9.2)
  name = (千与千寻)
  quote = (最好的宫崎骏,最好的久石让。 )
>, 
<Movie:
  score = (9.4)
  name = (辛德勒的名单)
  quote = (拯救一个人,就是拯救整个世界。)
>, 
<Movie:
  score = (9.2)
  name = (海上钢琴师)
  quote = (每个人都要走一条自己坚定了的路,就算是粉身碎骨。 )
>, 
<Movie:
  score = (9.3)
  name = (机器人总动员)
  quote = (小瓦力,大人生。)
>, 
<Movie:
  score = (9.2)
  name = (盗梦空间)
  quote = (诺兰给了我们一场无法盗取的梦。)
>, 
<Movie:
  score = (9.1)
  name = (泰坦尼克号)
  quote = (失去的才是永恒的。 )
>, 
<Movie:
  score = (9.1)
  name = (三傻大闹宝莱坞)
  quote = (英俊版憨豆,高情商版谢耳朵。)
>, 
<Movie:
  score = (9.2)
  name = (放牛班的春天)
  quote = (天籁一般的童声,是最接近上帝的存在。 )
>, 
<Movie:
  score = (9.2)
  name = (忠犬八公的故事)
  quote = (永远都不能忘记你所爱的人。)
>, 
<Movie:
  score = (9.1)
  name = (大话西游之大圣娶亲)
  quote = (一生所爱。)
>, 
<Movie:
  score = (9.1)
  name = (龙猫)
  quote = (人人心中都有个龙猫,童年就永远不会消失。)
>, 
<Movie:
  score = (9.2)
  name = (教父)
  quote = (千万不要记恨你的对手,这样会让你失去理智。)
>, 
<Movie:
  score = (9.2)
  name = (乱世佳人)
  quote = (Tomorrow is another day.)
>, 
<Movie:
  score = (9.1)
  name = (天堂电影院)
  quote = (那些吻戏,那些青春,都在影院的黑暗里被泪水冲刷得无比清晰。)
>, 
<Movie:
  score = (8.9)
  name = (当幸福来敲门)
  quote = (平民励志片。 )
>, 
<Movie:
  score = (9.0)
  name = (搏击俱乐部)
  quote = (邪恶与平庸蛰伏于同一个母体,在特定的时间互相对峙。)
>, 
<Movie:
  score = (9.0)
  name = (楚门的世界)
  quote = (如果再也不能见到你,祝你早安,午安,晚安。)
>, 
<Movie:
  score = (9.1)
  name = (触不可及)
  quote = (满满温情的高雅喜剧。)
>, 
<Movie:
  score = (9.1)
  name = (指环王3:王者无敌)
  quote = (史诗的终章。)
>, 
<Movie:
  score = (8.9)
  name = (罗马假日)
  quote = (爱情哪怕只有一天。)
>]

Process finished with exit code 0

源代码

import requests
from lxml import html

class Model(object):
    def __repr__(self):
        class_name = self.__class__.__name__
        properties = ('{0} = ({1})'.format(k, v) for k, v in self.__dict__.items())
        return '\n<{0}:\n  {1}\n>'.format(class_name, '\n  '.join(properties))


class Movie(Model):
    def __init__(self):
        super(Movie, self).__init__()
        self.name = ''
        self.score = 0
        self.quote = ''
        self.cover_url = ''


def movie_from_div(div):
    movie = Movie()
    movie.name = div.xpath('.//span[@class="title"]')[0].text
    movie.score = div.xpath('.//span[@class="rating_num"]')[0].text
    movie.quote = div.xpath('.//span[@class="inq"]')[0].text
    img_url = div.xpath('.//div[@class="pic"]/a/img/@src')[0]
    print(img_url)
    movie.cover_url = img_url
    return movie


def movies_from_url(url):
    page = requests.get(url)
    root = html.fromstring(page.content)
    #                         <div class="item">
    movie_divs = root.xpath('//div[@class="item"]')
    # movies = [movie_from_div(div) for div in movie_divs]
    # 上面一行相当于下面四行
    movies = []
    for div in movie_divs:
        movie = movie_from_div(div)
        movies.append(movie)
    return movies


def download_img(url, name):
    r = requests.get(url)
    with open(name, 'wb') as f:
        f.write(r.content)


def save_covers(movies):
    for m in movies:
        download_img(m.cover_url, m.name + '.jpg')


def main():
    url = 'https://movie.douban.com/top250'
    movies = movies_from_url(url)
    print(movies)
    save_covers(movies)



if __name__ == '__main__':
    main()

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,657评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,662评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,143评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,732评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,837评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,036评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,126评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,868评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,315评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,641评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,773评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,859评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,584评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,676评论 2 351

推荐阅读更多精彩内容