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 相关文章推荐
wxPython窗口中文乱码解决方法
Oct 11 Python
Python中使用OpenCV库来进行简单的气象学遥感影像计算
Feb 19 Python
python中PIL安装简单教程
Apr 21 Python
Python探索之创建二叉树
Oct 25 Python
详解python中的线程
Feb 10 Python
解决python 未发现数据源名称并且未指定默认驱动程序的问题
Dec 07 Python
PowerBI和Python关于数据分析的对比
Jul 11 Python
Python如何使用字符打印照片
Jan 03 Python
jupyter notebook清除输出方式
Apr 10 Python
使用keras根据层名称来初始化网络
May 21 Python
python中watchdog文件监控与检测上传功能
Oct 30 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
Dec 14 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 MYSQL乱码问题,使用SET NAMES utf8校正
2009/11/30 PHP
php的ajax框架xajax入门与试用介绍
2010/12/19 PHP
php文件缓存类用法实例分析
2015/04/22 PHP
php生成条形码的图片的实例详解
2017/09/13 PHP
PHP常量define和const的区别详解
2019/05/18 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
2019/09/26 PHP
推荐自用 Javascript 缩图函数 (onDOMLoaded)……
2007/10/23 Javascript
jqGrid jQuery 表格插件测试代码
2011/08/23 Javascript
ie中js创建checkbox默认选中问题探讨
2013/10/21 Javascript
基于jQuery创建鼠标悬停效果的方法
2015/03/07 Javascript
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
javascript 使用正则test( )第一次是 true,第二次是false
2017/02/22 Javascript
vue2中,根据list的id进入对应的详情页并修改title方法
2018/08/24 Javascript
解决vue接口数据赋值给data没有反应的问题
2018/08/27 Javascript
vue实现下拉加载其实没那么复杂
2019/08/13 Javascript
Windows下PyMongo下载及安装教程
2015/04/27 Python
Python中的匿名函数使用简介
2015/04/27 Python
实例讲解Python中global语句下全局变量的值的修改
2016/06/16 Python
Python 装饰器深入理解
2017/03/16 Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
2017/04/14 Python
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
2017/06/12 Python
Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
2017/07/27 Python
python打包压缩、读取指定目录下的指定类型文件
2018/04/12 Python
浅析Python3中的对象垃圾收集机制
2019/06/06 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
2019/06/26 Python
python设计微型小说网站(基于Django+Bootstrap框架)
2019/07/08 Python
Python使用matplotlib绘制三维参数曲线操作示例
2019/09/10 Python
Python pygame绘制文字制作滚动文字过程解析
2019/12/12 Python
tensorflow模型继续训练 fineturn实例
2020/01/21 Python
python GUI计算器的实现
2020/10/09 Python
美国创意之家:BulbHead
2017/07/12 全球购物
多媒体编辑专业毕业生推荐信
2013/11/05 职场文书
社团成立邀请函
2014/01/08 职场文书
2015年教务工作总结
2015/05/23 职场文书
2016国庆节活动宣传语
2015/11/25 职场文书
关于感恩老师的古诗句
2019/08/20 职场文书