python正则匹配抓取豆瓣电影链接和评论代码分享


Posted in Python onDecember 27, 2013
import urllib.request
import re
import time
def movie(movieTag):
    tagUrl=urllib.request.urlopen(url)
    tagUrl_read = tagUrl.read().decode('utf-8')
    return tagUrl_read
def subject(tagUrl_read):
    ''' 
        这里还存在问题:
        ①这只针对单独的一页进行排序,而没有对全部页面的电影进行排序
        ②下次更新添加电影链接,考虑添加电影海报
        ③需要追加列表
        ④导入到本地txt或excel中
        ⑤在匹配电影名字时是否可以同时匹配链接与名字、评分、评论组成数组
        ⑥
    '''
#正则表达式匹配电影的名字(链接)、评分与评论    
    nameURL = re.findall(r'(http://movie.douban.com/subject/[0-9.]+)\/"\s+title="(.+)"',tagUrl_read)
    scoreURL = re.findall(r'<span\s+class="rating_nums">([0-9.]+)<\/span>',tagUrl_read)
    evaluateURL = re.findall(r'<span\s+class="pl">\((\w+)人评价\)<\/span>',tagUrl_read)
    movieLists = list(zip(nameURL,scoreURL,evaluateURL))
    newlist.extend(movieLists)
    return newlist
#用quote处理特殊(中文)字符
movie_type = urllib.request.quote(input('请输入电影类型(如剧情、喜剧、悬疑):'))
page_end=int(input('请输入搜索结束时的页码:'))
num_end=page_end*20
num=0
page_num=1
newlist=[]
while num<num_end:
    url=r'http://movie.douban.com/tag/%s?start=%d'%(movie_type,num)
    movie_url = movie(url)
    subject_url=subject(movie_url)
    num=page_num*20
    page_num+=1
else:
    #使用sorted函数对列表进行排列,reverse参数为True时升序,默认或False时为降序, key=lambda还不是很明白这里的原理
    movieLIST = sorted(newlist, key=lambda movieList : movieList[1],reverse = True)
    for movie in movieLIST:
        print(movie)
time.sleep(3)
print('结束')
Python 相关文章推荐
python字典排序实例详解
May 20 Python
Python 基础教程之str和repr的详解
Aug 20 Python
基于python的图片修复程序(实现水印去除)
Jun 04 Python
Python实现全排列的打印
Aug 18 Python
简单谈谈python基本数据类型
Sep 26 Python
Python进程间通信Queue消息队列用法分析
May 22 Python
Python学习笔记之字符串和字符串方法实例详解
Aug 22 Python
Python单例模式的四种创建方式实例解析
Mar 04 Python
Python selenium实现断言3种方法解析
Sep 08 Python
Python如何利用Har文件进行遍历指定字典替换提交的数据详解
Nov 05 Python
Python实现滑雪小游戏
Sep 25 Python
python ConfigParser库的使用及遇到的坑
Feb 12 Python
python正则表达式去掉数字中的逗号(python正则匹配逗号)
Dec 25 #Python
python正则表达式判断字符串是否是全部小写示例
Dec 25 #Python
netbeans7安装python插件的方法图解
Dec 24 #Python
python批量修改文件后缀示例代码分享
Dec 24 #Python
python模拟新浪微博登陆功能(新浪微博爬虫)
Dec 24 #Python
python复制文件代码实现
Dec 23 #Python
python定时采集摄像头图像上传ftp服务器功能实现
Dec 23 #Python
You might like
15个小时----从修改程序到自己些程序
2006/10/09 PHP
php使用pack处理二进制文件的方法
2014/07/03 PHP
PHP调用.NET的WebService 简单实例
2015/03/27 PHP
PHP文件操作方法汇总
2015/07/01 PHP
PHP结合Mysql数据库实现留言板功能
2016/03/04 PHP
php把时间戳转换成多少时间之前函数的实例
2016/11/16 PHP
js中将具有数字属性名的对象转换为数组
2011/03/06 Javascript
SOSO地图API使用(一)在地图上画圆实现思路与代码
2013/01/15 Javascript
javascript中实现兼容JAVA的hashCode算法代码分享
2020/08/11 Javascript
js交换排序 冒泡排序算法(Javascript版)
2014/10/04 Javascript
javascript实现通过表格绘制颜色填充矩形的方法
2015/04/21 Javascript
jQuery中on绑定事件后引发的事件冒泡问题如何解决
2016/05/25 Javascript
Highcharts入门之基本属性
2016/08/02 Javascript
用js实现博客打赏功能
2016/10/24 Javascript
详解angularJs中关于ng-class的三种使用方式说明
2017/06/02 Javascript
原生js jquery ajax请求以及jsonp的调用方法
2017/08/04 jQuery
js删除数组中某几项的方法总结
2019/01/16 Javascript
element ui分页多选,翻页记忆的实例
2019/09/03 Javascript
Node.js实现批量下载图片简单操作示例
2020/01/18 Javascript
JS如何寻找数组中心索引过程解析
2020/06/01 Javascript
Element-UI 使用el-row 分栏布局的教程
2020/10/26 Javascript
[01:35]2014DOTA2西雅图邀请赛 专访狐狸妈青春献给刀塔
2014/07/08 DOTA
构建Python包的五个简单准则简介
2015/06/15 Python
树莓派动作捕捉抓拍存储图像脚本
2019/06/22 Python
对python中UDP,socket的使用详解
2019/08/22 Python
pycharm 关掉syntax检查操作
2020/06/09 Python
使用Dajngo 通过代码添加xadmin用户和权限(组)
2020/07/03 Python
Python如何急速下载第三方库详解
2020/11/02 Python
TensorFlow低版本代码自动升级为1.0版本
2021/02/20 Python
CSS3旋转——彩色扇子兼容firefox浏览器
2013/06/04 HTML / CSS
Jacadi Paris英国官网:法国童装品牌
2019/08/09 全球购物
毕业生怎样写好自荐信
2013/11/11 职场文书
文明寝室申报材料
2014/05/12 职场文书
2015年感恩父亲节演讲稿
2015/03/19 职场文书
学校通报表扬范文
2015/05/04 职场文书
2015年社区消防安全工作总结
2015/10/14 职场文书