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 合并文件的具体实例
Aug 08 Python
python实现文件快照加密保护的方法
Jun 30 Python
python抓取网页中图片并保存到本地
Dec 01 Python
Python实现树的先序、中序、后序排序算法示例
Jun 23 Python
python远程连接服务器MySQL数据库
Jul 02 Python
pyqt5使用按钮进行界面的跳转方法
Jun 19 Python
基于Python中random.sample()的替代方案
May 23 Python
Python如何安装第三方模块
May 28 Python
解决Pycharm双击图标启动不了的问题(JetBrains全家桶通用)
Aug 07 Python
使用python-cv2实现Harr+Adaboost人脸识别的示例
Oct 27 Python
详解Python中openpyxl模块基本用法
Feb 23 Python
学点简单的Django之第一个Django程序的实现
Feb 24 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
复杂检索数据并分页显示的处理方法
2006/10/09 PHP
php实现无限级分类实现代码(递归方法)
2011/01/01 PHP
关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
2013/06/28 PHP
PHP实现重载的常用方法实例详解
2017/10/18 PHP
为Extjs加加速(javascript加速)
2010/08/19 Javascript
jquery parent和parents的区别分析
2013/10/02 Javascript
jquery放大镜效果超漂亮噢
2013/11/15 Javascript
JS控件ASP.NET的treeview控件全选或者取消(示例代码)
2013/12/16 Javascript
JS的document.all函数使用示例
2013/12/30 Javascript
jquery模拟alert的弹窗插件
2015/07/31 Javascript
基于MVC4+EasyUI的Web开发框架形成之旅之界面控件的使用
2015/12/16 Javascript
JavaScript数组去重的几种方法效率测试
2016/10/23 Javascript
详解基于javascript实现的苹果系统底部菜单
2016/12/02 Javascript
Bootstrap基本样式学习笔记之表格(2)
2016/12/07 Javascript
微信公众号菜单配置微信小程序实例详解
2017/03/31 Javascript
图文介绍Vue父组件向子组件传值
2018/02/17 Javascript
JS中touchstart事件与click事件冲突的解决方法
2018/03/12 Javascript
JavaScript实现的DOM树遍历方法详解【二叉DOM树、多叉DOM树】
2018/05/07 Javascript
微信小程序动态生成二维码的实现代码
2018/07/25 Javascript
vue2.0 + ele的循环表单及验证字段方法
2018/09/18 Javascript
利用Vue构造器创建Form组件的通用解决方法
2018/12/03 Javascript
详解如何在vue项目中使用layui框架及采坑
2019/05/05 Javascript
vue fetch中的.then()的正确使用方法
2020/04/17 Javascript
Python调用命令行进度条的方法
2015/05/05 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
2019/06/13 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
2020/12/16 Python
德国Discount-Apotheke中文官网:DC德式康线上药房
2020/02/18 全球购物
如果一个类实现了多个接口但是这些接口有相同的方法名将会怎样
2013/06/16 面试题
大三毕业自我鉴定
2014/01/15 职场文书
2014年消防工作实施方案
2014/02/20 职场文书
小学教师寄语大全
2014/04/03 职场文书
机关党员进社区活动总结
2014/07/05 职场文书
工作说明书格式
2014/07/29 职场文书
滴水洞导游词
2015/02/10 职场文书
Golang 对es的操作实例
2022/04/20 Golang
Flink 侧流输出源码示例解析
2022/09/23 Servers