python爬虫获取豆瓣正在热播电影
来源:互联网 发布:2016网络写手收入排行 编辑:程序博客网 时间:2024/04/29 02:23
热播地址:https://movie.douban.com/cinema/nowplaying/beijing/
1、使用浏览器查看html文件
找到热播电影的标签文件
查看tag,可以看到最开始的tag为li
2、HTMLPaser
主要用来解析HTTP数据,其中有几个接口
- feed: 向解析器喂数据,可以分段提供
- handler_starttag: 处理html的开始标签
- .tag:标签名称
- .attrs:属性列表
- handler_data:处理标签里的数据体
- Data:数据文本
3、代码分析
环境:Python 2.7,win10
# -*- coding: utf-8 -*-import urllib2from HTMLParser import HTMLParserclass MovieParser(HTMLParser): def __init__(self): HTMLParser.__init__(self) # 调用父类的构造函数 self.movies = [] # 定义一个数组来储解析出来的电影 def handle_starttag(self, tag, attrs): # 重载handle_starttag方法,这个方法就可以去解析li这个数据 def _attr(attrlist, attrname): # 定义一个函数来解析这个属性 for attr in attrlist: # 从属性列表里面取出对应列表的值 if attr[0] == attrname: # 如果这个传进来的属性名称和这个要求的名称一样 return attr[1] # 返回属性值 return None # 如果要爬取即将上映的电影时,data-category为upcoming if tag == 'li' and _attr(attrs, 'data-title') and _attr(attrs, 'data-category') == 'nowplaying': movie = {} movie['title'] = _attr(attrs, 'data-title') # 电影名称 movie['score'] = _attr(attrs, 'data-score') # 电影分数 movie['director'] = _attr(attrs, 'data-director') # 电影导演 movie['actors'] = _attr(attrs, 'data-actors') # 电影演员 self.movies.append(movie) # 提取出来后放到列表里面 print('%(title)s|%(score)s|%(director)s|%(actors)s' % movie)def nowplaying_movie(url): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36'} # 模拟一个浏览器的行为 req = urllib2.Request(url, headers=headers) s = urllib2.urlopen(req) paser = MovieParser() paser.feed(s.read()) s.close() return paser.moviesurl = 'https://movie.douban.com/cinema/nowplaying/beijing/'movies = nowplaying_movie(url)
运行结果
嫌疑人X的献身|6.6|苏有朋|王凯 / 张鲁一 / 林心如金刚:骷髅岛|6.9|乔丹·沃格特-罗伯茨|汤姆·希德勒斯顿 / 布丽·拉尔森 / 塞缪尔·杰克逊非凡任务|6.6|麦兆辉 潘耀明|黄轩 / 段奕宏 / 郎月婷绑架者|5.3|徐静蕾|白百何 / 黄立行 / 明道冰雪大作战|6.2|让-弗朗索瓦·波略特 弗兰克·布里森|安吉拉·嘉鲁皮 / 玛丽欧·沃尔夫 / 露辛达·戴维斯美女与野兽|7.4|比尔·康顿|艾玛·沃森 / 丹·史蒂文斯 / 卢克·伊万斯有完没完|5.7|王啸坤|范伟 / 贾静雯 / 刘俊昊一条狗的使命|7.7|拉斯·霍尔斯道姆|布丽特·罗伯森 / 丹尼斯·奎德 / 佩吉·利普顿八月|7.3|张大磊|孔维一 / 张晨 / 郭燕芸欢乐喜剧人|2.6|黎继强|郭德纲 / 岳云鹏 / 罗温·艾金森怨灵宿舍之白纸女生|0|陆诗雷|谢容儿 / 薇拉贝儿 / 姚雨鑫欢乐好声音|8.2|加斯·詹宁斯 克里斯托夫·卢尔德莱|马修·麦康纳 / 瑞茜·威瑟斯彭 / 塞思·麦克法兰金刚狼3:殊死一战|8.3|詹姆斯·曼高德|休·杰克曼 / 帕特里克·斯图尔特 / 达芙妮·基恩爱乐之城|8.4|达米恩·查泽雷|瑞恩·高斯林 / 艾玛·斯通 / 约翰·传奇麦兜响当当|7.4|谢立文|黄渤 / 黄秋生 / 吴君如极限特工3:终极回归|5.8|D·J·卡卢索|范·迪塞尔 / 甄子丹 / 迪皮卡·帕度柯妮领袖1935|2.5|周琦 马德林|王晖 / 刘劲 / 吴京安碟仙诡谭2|3.2|雷宇扬|张韶涵 / 方力申 / 惠英红唤爱|0|王焮|杨欣 / 张博翔 / 李松珂夜色撩人|5.0|夏钢|王千源 / 余男 / 南宫珉霸王别姬|9.5|陈凯歌|张国荣 / 张丰毅 / 巩俐乐高蝙蝠侠大电影|8.1|克里斯·麦凯|威尔·阿奈特 / 罗莎里奥·道森 / 拉尔夫·费因斯猪猪侠之英雄猪少年|4.8|陆锦明 钟裕|易烊千玺 / 陈轶 / 张子琨点五步|6.4|陈志发|林耀声 / 胡子彤 / 廖启智
参考http://www.maiziedu.com/wiki/crawler/example/
2 0
- python爬虫获取豆瓣正在热播电影
- Python爬虫实例:豆瓣热播电影
- Python爬虫实例:用requests重构豆瓣热播电影爬虫
- python爬虫之获取豆瓣电影信息
- Python爬虫获取豆瓣电影TOP250
- python爬虫 豆瓣电影
- python豆瓣电影爬虫
- Python爬虫豆瓣电影top250
- 简单的PHP爬虫,获取豆瓣正在热映电影列表
- python爬虫,爬豆瓣top250电影
- python爬虫之豆瓣电影评分
- [Python爬虫]1.豆瓣电影Top250
- Python爬虫——豆瓣电影Top250
- Python爬虫小案例:豆瓣电影TOP250
- python爬虫 登陆豆瓣 爬豆瓣电影短评
- <Python爬虫>爬取豆瓣图书/豆瓣电影系列
- Python爬虫之模拟登录豆瓣获取最近看过的电影
- 豆瓣电影爬虫初探
- python并行计算
- 算法导论 练习题 5.2-5
- 【书山有路】SQL必知必会 第11课
- Core Animation
- Unity -- 设置物体SelectIcon
- python爬虫获取豆瓣正在热播电影
- 异常检测LRR算法
- CoreData
- Ubuntu中忘记管理员密码和root密码以后登陆系统
- Matlab的数组创建
- python-networkx模块
- C++的继承
- Mysql中的数据类型
- servlet jsp html utf-8设置代码