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 相关文章推荐
关于你不想知道的所有Python3 unicode特性
Nov 28 Python
在Python的Django框架中加载模版的方法
Jul 16 Python
初步认识Python中的列表与位运算符
Oct 12 Python
python去除字符串中的换行符
Oct 11 Python
详解python3中的真值测试
Aug 13 Python
python tkinter界面居中显示的方法
Oct 11 Python
通过shell+python实现企业微信预警
Mar 07 Python
Python中私有属性的定义方式
Mar 05 Python
python检查目录文件权限并修改目录文件权限的操作
Mar 11 Python
Python3标准库glob文件名模式匹配的问题
Mar 13 Python
matplotlib源码解析标题实现(窗口标题,标题,子图标题不同之间的差异)
Feb 22 Python
PyCharm 安装与使用配置教程(windows,mac通用)
May 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
php获取当前url地址的方法小结
2017/01/10 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
prototype.js的Ajax对象
2006/09/23 Javascript
跟我学习javascript的this关键字
2020/05/28 Javascript
jQuery编写设置和获取颜色的插件
2017/01/09 Javascript
浅谈vue中慎用style的scoped属性
2017/11/28 Javascript
基于js 字符串indexof与search方法的区别(详解)
2017/12/04 Javascript
10行原生JS实现文字无缝滚动(超简单)
2018/01/02 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
2018/02/21 Javascript
解决vue中对象属性改变视图不更新的问题
2018/02/23 Javascript
node.js中fs文件系统目录操作与文件信息操作
2018/02/24 Javascript
vue实现a标签点击高亮方法
2018/03/17 Javascript
javascript获取select值的方法完整实例
2019/06/20 Javascript
从零搭一个自用的前端脚手架的方法步骤
2019/09/23 Javascript
Electron 调用命令行(cmd)
2019/09/23 Javascript
js实现图片上传即时显示效果
2019/09/30 Javascript
ant-design-vue按需加载的坑的解决
2020/05/14 Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
2020/09/02 Javascript
[01:19:33]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第一场 2月2日
2021/03/11 DOTA
Python的内存泄漏及gc模块的使用分析
2014/07/16 Python
深入探究Python中变量的拷贝和作用域问题
2015/05/05 Python
用python建立两个Y轴的XY曲线图方法
2019/07/08 Python
Python之——生成动态路由轨迹图的实例
2019/11/22 Python
Python使用Numpy模块读取文件并绘制图片
2020/05/13 Python
Python字符串split及rsplit方法原理详解
2020/06/29 Python
意大利香水和彩妆护肤品购物网站:Ditano
2017/08/13 全球购物
蛋白质世界:Protein World
2017/11/23 全球购物
StubHub中国:购买和出售全球活动门票
2020/01/01 全球购物
VisionPros美国站:加拿大在线隐形眼镜和眼镜零售商
2020/02/11 全球购物
小学科学教学计划
2015/01/21 职场文书
天河观后感
2015/06/11 职场文书
师德培训心得体会2016
2016/01/09 职场文书
《丑小鸭》教学反思
2016/02/19 职场文书
评测 | 大屏显示带收音机的高端音箱,JBL TUNE2便携式插卡音箱实测
2021/04/24 无线电
联想win10摄像头打不开怎么办?win10笔记本摄像头打不开解决办法
2022/04/08 数码科技
Redis实战之Lettuce的使用技巧详解
2022/12/24 Redis