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 相关文章推荐
rhythmbox中文名乱码问题解决方法
Sep 06 Python
在Django的通用视图中处理Context的方法
Jul 21 Python
浅谈插入排序算法在Python程序中的实现及简单改进
May 04 Python
浅谈python 四种数值类型(int,long,float,complex)
Jun 08 Python
python实现报表自动化详解
Nov 16 Python
python网络爬虫之如何伪装逃过反爬虫程序的方法
Nov 23 Python
利用Python找出序列中出现最多的元素示例代码
Dec 08 Python
Tensorflow环境搭建的方法步骤
Feb 07 Python
python爬虫爬取网页表格数据
Mar 07 Python
pytorch自定义二值化网络层方式
Jan 07 Python
Python 调用有道翻译接口实现翻译
Mar 02 Python
Python模块常用四种安装方式
Oct 20 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实现文件上传和多文件上传
2015/12/24 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
2018/10/12 PHP
jQuery 拖动层(在可视区域范围内)
2012/05/24 Javascript
jQuery移动和复制dom节点实用DOM操作案例
2012/12/17 Javascript
滚动图片效果 jquery实现回旋滚动效果
2013/01/08 Javascript
JS加jquery简单实现标签元素的显示或隐藏
2013/09/23 Javascript
基于JQuery的列表拖动排序实现代码
2013/10/01 Javascript
js实现iframe跨页面调用函数的方法
2014/12/13 Javascript
javascript实现校验文件上传控件实例
2015/04/20 Javascript
详解jQuery向动态生成的内容添加事件响应jQuery live()方法
2015/11/02 Javascript
使用canvas及js简单生成验证码方法
2017/04/02 Javascript
Javascript ES6中对象类型Sets的介绍与使用详解
2017/07/17 Javascript
Angular.js中$resource高大上的数据交互详解
2017/07/30 Javascript
基于vue-cli创建的项目的目录结构及说明介绍
2017/11/23 Javascript
Vue.js的动态组件模板的实现
2018/11/26 Javascript
详解React项目中碰到的IE问题
2019/03/14 Javascript
使用p5.js临摹动态图片
2019/11/04 Javascript
Vue中多元素过渡特效的解决方案
2020/02/05 Javascript
python二叉树遍历的实现方法
2013/11/21 Python
跟老齐学Python之编写类之二方法
2014/10/11 Python
Python中的上下文管理器和with语句的使用
2018/04/17 Python
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
python实时监控cpu小工具
2018/06/21 Python
很酷的python表白工具 你喜欢我吗
2019/04/11 Python
详解Python3之数据指纹MD5校验与对比
2019/06/11 Python
python 进程的几种创建方式详解
2019/08/29 Python
python 矢量数据转栅格数据代码实例
2019/09/30 Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
2020/07/20 Python
企业为何需要商业计划书
2013/12/26 职场文书
声乐专业大学生职业生涯规划书:理想的未来需要自己去打造
2014/09/20 职场文书
不听老师话的万能检讨书
2014/10/04 职场文书
计划生育汇报材料
2014/12/26 职场文书
员工辞职信怎么写
2015/02/27 职场文书
2015年药店工作总结
2015/04/20 职场文书
CSS3新特性详解(五):多列columns column-count和flex布局
2021/04/30 HTML / CSS
MySQL连接查询你真的学会了吗?
2021/06/02 MySQL