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内置函数OCT详解
Nov 09 Python
python使用openpyxl库修改excel表格数据方法
May 03 Python
Flask框架信号用法实例分析
Jul 24 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
Dec 28 Python
在Python运行时动态查看进程内部信息的方法
Feb 22 Python
python抓取需要扫微信登陆页面
Apr 29 Python
python实现小球弹跳效果
May 10 Python
Python切图九宫格的实现方法
Oct 10 Python
Python 使用type来定义类的实现
Nov 19 Python
解决python web项目意外关闭,但占用端口的问题
Dec 17 Python
基于Python 中函数的 收集参数 机制
Dec 21 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
Feb 29 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
上海牌131型七灯四波段四喇叭一级收音机
2021/03/02 无线电
风味层面去分析咖啡油脂
2021/03/03 咖啡文化
深入php-fpm的两种进程管理模式详解
2013/06/03 PHP
PHP设计模式之迭代器模式的深入解析
2013/06/13 PHP
Yii框架弹出框功能示例
2017/01/07 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
PHP simplexml_load_string()函数实例讲解
2019/02/03 PHP
window.open的功能全解析
2006/10/10 Javascript
关于Javascript与iframe的那些事儿
2013/07/04 Javascript
jQuery回车实现登录简单实现
2013/08/20 Javascript
jQuery实现手机自定义弹出输入框
2016/06/13 Javascript
Windows环境下npm install 报错: operation not permitted, rename的解决方法
2016/09/26 Javascript
JS获取浮动(float)元素的style.left值为空的快速解决办法
2017/02/19 Javascript
获取当前按钮或者html的ID名称实例(推荐)
2017/06/23 Javascript
Angular 2 ngForm中的ngModel、[ngModel]和[(ngModel)]的写法
2017/06/29 Javascript
element-ui中select组件绑定值改变,触发change事件方法
2018/08/24 Javascript
Vue CLI3.0中使用jQuery和Bootstrap的方法
2019/02/28 jQuery
为什么Vue3.0使用Proxy实现数据监听(defineProperty表示不背这个锅)
2019/10/14 Javascript
详解Nuxt内导航栏的两种实现方式
2020/04/16 Javascript
vue实现商品列表的添加删除实例讲解
2020/05/14 Javascript
Python实现大文件排序的方法
2015/07/10 Python
python 写入csv乱码问题解决方法
2016/10/23 Python
浅谈Series和DataFrame中的sort_index方法
2018/06/07 Python
python pandas修改列属性的方法详解
2018/06/09 Python
python3.5绘制随机漫步图
2018/08/27 Python
Python中collections模块的基本使用教程
2018/12/07 Python
详解使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件
2019/08/23 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
2019/12/10 Python
python openssl模块安装及用法
2020/12/06 Python
英国领先的NHS批准的在线药店:Pharmacy2U
2017/01/06 全球购物
如何在存储过程中使用Loop
2016/01/05 面试题
C#怎么让一个窗口居中显示?
2015/10/20 面试题
毕业生教师求职信
2013/10/20 职场文书
社区活动邀请函范文
2014/01/29 职场文书
班主任评语大全
2014/04/26 职场文书
员工廉洁自律承诺书
2014/05/26 职场文书