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读写配置文件的方法
Jun 03 Python
Python中进程和线程的区别详解
Oct 29 Python
[原创]Python入门教程4. 元组基本操作
Oct 31 Python
Matplotlib中文乱码的3种解决方案
Nov 15 Python
浅谈python在提示符下使用open打开文件失败的原因及解决方法
Nov 30 Python
自学python的建议和周期预算
Jan 30 Python
python3在同一行内输入n个数并用列表保存的例子
Jul 20 Python
对Django的restful用法详解(自带的增删改查)
Aug 28 Python
django框架创建应用操作示例
Sep 26 Python
python 爬取古诗文存入mysql数据库的方法
Jan 08 Python
tensorflow 模型权重导出实例
Jan 24 Python
python中判断文件结束符的具体方法
Aug 04 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 飞信好友免费短信API接口开源版
2010/07/22 PHP
浅析PHP程序防止ddos,dns,集群服务器攻击的解决办法
2013/06/18 PHP
phpmailer中文乱码问题的解决方法
2014/04/22 PHP
php伪静态之APACHE篇
2014/06/02 PHP
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
2014/12/09 PHP
PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析
2019/12/11 PHP
js操作iframe兼容各种主流浏览器示例代码
2013/07/22 Javascript
jQuery跨域问题解决方案
2015/08/03 Javascript
深入理解jQuery3.0的domManip函数
2016/09/01 Javascript
vue的Virtual Dom实现snabbdom解密
2017/05/03 Javascript
JS求Number类型数组中最大元素方法
2018/04/08 Javascript
Vue中使用 setTimeout() setInterval()函数的问题
2018/09/13 Javascript
详解如何写出一个利于扩展的vue路由配置
2019/05/16 Javascript
如何使用proxy实现一个简单完整的MVVM库的示例代码
2019/09/17 Javascript
详解vue页面首次加载缓慢原因及解决方案
2019/11/06 Javascript
webpack中的模式(mode)使用详解
2020/02/20 Javascript
基于jsbarcode 生成条形码并将生成的条码保存至本地+源码
2020/04/27 Javascript
Javascript中Math.max和Math.max.apply的区别和用法详解
2020/08/24 Javascript
OpenLayer3自定义测量控件MeasureTool
2020/09/28 Javascript
[44:58]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第二场
2018/04/06 DOTA
基于Python对数据shape的常见操作详解
2018/12/25 Python
PyTorch实现AlexNet示例
2020/01/14 Python
Python单元测试及unittest框架用法实例解析
2020/07/09 Python
Python HTMLTestRunner如何下载生成报告
2020/09/04 Python
python Paramiko使用示例
2020/09/21 Python
彻底解决Python包下载慢问题
2020/11/15 Python
Delphi工程师笔试题
2013/09/21 面试题
办理信用卡工作证明
2014/01/11 职场文书
2014年政风行风工作总结
2014/11/22 职场文书
2014年科普工作总结
2014/12/06 职场文书
个人欠条范本
2015/07/03 职场文书
2016年党支部公开承诺书
2016/03/25 职场文书
2019公司借款合同范本2篇!
2019/07/24 职场文书
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript
十大最帅动漫男主 碓冰拓海上榜,第一是《灌篮高手》男主角
2022/03/18 日漫
Java中的Kotlin 内部类原理
2022/06/16 Java/Android