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分析git log日志示例
Feb 27 Python
Python简单调用MySQL存储过程并获得返回值的方法
Jul 20 Python
django中的HTML控件及参数传递方法
Mar 20 Python
Python实现的质因式分解算法示例
May 03 Python
python 中文件输入输出及os模块对文件系统的操作方法
Aug 27 Python
Python实现字符串匹配的KMP算法
Apr 04 Python
tensorflow 环境变量设置方式
Feb 06 Python
django有外键关系的两张表如何相互查找
Feb 10 Python
python程序输出无内容的解决方式
Apr 09 Python
使用Keras预训练模型ResNet50进行图像分类方式
May 23 Python
Pandas缺失值2种处理方式代码实例
Jun 13 Python
jupyter notebook快速入门及使用详解
Nov 13 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
第1次亲密接触PHP5(2)
2006/10/09 PHP
apache配置虚拟主机的方法详解
2013/06/17 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
2014/08/20 PHP
PHP获取某个月最大天数(最后一天)的方法
2015/07/29 PHP
编写PHP脚本使WordPress的主题支持Widget侧边栏
2015/12/14 PHP
jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路
2013/04/08 Javascript
JavaScript中的运算符种类及其规则介绍
2013/09/26 Javascript
jQuery队列操作方法实例
2014/06/11 Javascript
node.js中的fs.lstat方法使用说明
2014/12/16 Javascript
javascript中attachEvent用法实例分析
2015/05/14 Javascript
TypeScript 学习笔记之基本类型
2015/06/19 Javascript
jquery实现华丽的可折角广告代码
2015/09/02 Javascript
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
2015/12/13 Javascript
jQuery简单注册和禁用全局事件的方法
2016/07/25 Javascript
使用SVG基本操作API的实例讲解
2017/09/14 Javascript
ajax请求+vue.js渲染+页面加载的示例
2018/02/11 Javascript
angularJs利用$scope处理升降序的方法
2018/10/08 Javascript
node命令行工具之实现项目工程自动初始化的标准流程
2019/08/12 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
2019/08/14 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
vue 路由缓存 路由嵌套 路由守卫 监听物理返回操作
2020/08/06 Javascript
在vue中嵌入外部网站的实现
2020/11/13 Javascript
vue3.0 自适应不同分辨率电脑的操作
2021/02/06 Vue.js
[54:19]完美世界DOTA2联赛PWL S2 Magma vs PXG 第二场 11.28
2020/12/01 DOTA
用python分割TXT文件成4K的TXT文件
2009/05/23 Python
python 用for循环实现1~n求和的实例
2019/02/01 Python
Python3简单实现串口通信的方法
2019/06/12 Python
HTML5之SVG 2D入门6—视窗坐标系与用户坐标系及变换概述
2013/01/30 HTML / CSS
教学评估实施方案
2014/03/16 职场文书
大学英语演讲稿范文
2014/04/24 职场文书
开工仪式策划方案
2014/05/23 职场文书
初中差生评语
2014/12/29 职场文书
2015毕业生自我评价范文
2015/03/02 职场文书
幼儿园工作总结2015
2015/04/01 职场文书
车间安全生产管理制度
2015/08/06 职场文书
Linux中Nginx的防盗链和优化的实现代码
2021/06/20 Servers