Python爬虫实战——豆瓣电影TOP250

参照在线课堂的教程完成的,第一次尝试。

简要说明

用Python爬取豆瓣电影TOP250的电影信息,结果存成文本形式。

查看页面元素

Python爬虫实战——豆瓣电影TOP250_第1张图片

Python源码

#! /usr/bin/env python
#! encoding = utf-8

import requests
import codecs
from bs4 import  BeautifulSoup

DOWNLOAD_URL = 'http://movie.douban.com/top250'

HEADERS = {
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36'
}

def download_page(url):
    data = requests.get(url, headers = HEADERS).content
    return data


def parse_html(html):
    soup = BeautifulSoup(html)
    movie_list_soup = soup.find('ol', attrs = {'class': 'grid_view'})
    movie_name_list = []

    for movie_li in movie_list_soup.find_all('li'):
        detail = movie_li.find('div', attrs = {'class': 'hd'})
        movie_name = detail.find('span', attrs = {'class': 'title'}).getText()
        movie_name_list.append(movie_name)

    # find the next page
    next_page = soup.find('span', attrs = {'class': 'next'}).find('a')

    # catenate the page url
    if next_page:
        return movie_name_list, DOWNLOAD_URL + next_page['href']

    return movie_name_list, None


def main():
    url = DOWNLOAD_URL

    with codecs.open('movies','wb', encoding = 'utf-8') as fp:
        while url:
            # get the page
            html = download_page(url)
            # analysize the page
            movies, url = parse_html(html)
            fp.write(u'{movies}\n'.format(movies = '\n'.join(movies)))
            # fp.write(u'{url}\n'.format(url = '\n'.join(url)))

if __name__ == '__main__':
    main()

结果显示

肖申克的救赎
这个杀手不太冷
阿甘正传
霸王别姬
美丽人生
千与千寻
辛德勒的名单
海上钢琴师
机器人总动员
盗梦空间
泰坦尼克号
三傻大闹宝莱坞
放牛班的春天
忠犬八公的故事
大话西游之大圣娶亲
龙猫
教父
乱世佳人
天堂电影院
当幸福来敲门
搏击俱乐部
楚门的世界
触不可及
指环王3:王者无敌
罗马假日
十二怒汉
天空之城
两杆大烟枪
怦然心动
海豚湾
飞屋环游记
大话西游之月光宝盒
飞越疯人院
无间道
鬼子来了
少年派的奇幻漂流
窃听风暴
蝙蝠侠:黑暗骑士
熔炉
V字仇杀队
闻香识女人
活着
天使爱美丽
美丽心灵
指环王1:魔戒再现
指环王2:双塔奇兵
教父2
哈尔的移动城堡
七宗罪
情书
死亡诗社
勇敢的心
剪刀手爱德华
美国往事
钢琴家
致命魔术
狮子王
被嫌弃的松子的一生
音乐之声
小鞋子
星际穿越
低俗小说
入殓师
蝴蝶效应
玛丽和马克思
沉默的羔羊
本杰明·巴顿奇事
黑客帝国
拯救大兵瑞恩
饮食男女
辩护人
第六感
西西里的美丽传说
大鱼
幽灵公主
射雕英雄传之东成西就
心灵捕手
让子弹飞
阳光姐妹淘
阳光灿烂的日子
上帝之城
萤火虫之墓
大闹天宫
重庆森林
春光乍泄
禁闭岛
控方证人
致命ID
甜蜜蜜
告白
加勒比海盗
爱在黎明破晓前
阿凡达
风之谷
一一
素媛
爱在日落黄昏时
驯龙高手
海洋
燃情岁月
侧耳倾听
幸福终点站
虎口脱险
超脱
猫鼠游戏
神偷奶爸
断背山
摩登时代
电锯惊魂
真爱至上
菊次郎的夏天
借东西的小人阿莉埃蒂
雨人
布达佩斯大饭店
贫民窟的百万富翁
岁月神偷
狩猎
疯狂原始人
恋恋笔记本
记忆碎片
谍影重重3
东邪西毒
穿越时空的少女
魂断蓝桥
猜火车
倩女幽魂
七武士
怪兽电力公司
穿条纹睡衣的男孩
哈利·波特与魔法石
卢旺达饭店
秒速5厘米
黑天鹅
我是山姆
末代皇帝
傲慢与偏见
完美的世界
人工智能
杀人回忆
教父3
玩具总动员3
英雄本色
雨中曲
香水
冰川时代
碧海蓝天
撞车
纵横四海
浪潮
萤火之森
红辣椒
海盗电台
喜宴
消失的爱人
可可西里
恐怖直播
追随
朗读者
战争之王
迁徙的鸟
荒野生存
梦之安魂曲
罗生门
哈利·波特与死亡圣器(下)
7号房的礼物
绿里奇迹
谍影重重
一次别离
燕尾蝶
地球上的星星
勇闯夺命岛
叫我第一名
谍影重重2
卡萨布兰卡
英国病人
喜剧之王
变脸
花样年华
时空恋旅人
阿飞正传
穆赫兰道
这个男人来自地球
E.T. 外星人
唐伯虎点秋香
魔女宅急便
两小无猜
惊魂记
曾经
上帝也疯狂
非常嫌疑犯
恐怖游轮
爱·回家
再次出发之纽约遇见你
终结者2:审判日
小森林 夏秋篇
发条橙
蝙蝠侠:黑暗骑士崛起
蓝色大门
忠犬八公物语
哪吒闹海
蝴蝶
初恋这件小事
心迷宫
爱在暹罗
末路狂花
巴黎淘气帮
源代码
勇士
黑客帝国3:矩阵革命
美国丽人
与狼共舞
夜访吸血鬼
麦兜故事
黄金三镖客
新龙门客栈
东京物语
暖暖内含光
中央车站
被解救的姜戈
达拉斯买家俱乐部
青蛇
遗愿清单
超能陆战队
无耻混蛋
罪恶之城
偷拐抢骗
城市之光
无敌破坏王
大卫·戈尔的一生
牯岭街少年杀人事件
国王的演讲
荒岛余生
未麻的部屋
血钻
寿司之神
月球
导盲犬小Q
千钧一发
角斗士
荒蛮故事
不一样的天空
廊桥遗梦
假如爱有天意
速度与激情5
我们俩
我爱你
跳出我天地
疯狂的石头
我在伊朗长大
洛城机密

你可能感兴趣的:(Python爬虫实战——豆瓣电影TOP250)