python正则匹配抓取豆瓣电影链接和评论代码分享

 更新时间:2013年12月27日 09:52:27   作者:  
抓取豆瓣各类型电影的链接和评论,按评分排列

复制代码 代码如下:

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中opencv Canny边缘检测

    python中opencv Canny边缘检测

    这篇文章主要介绍了python中opencv Canny边缘检测,Canny边缘检测是一种使用多级边缘检测算法检测边缘的方法。OpenCV提供了函数cv2.Canny()实现Canny边缘检测。更多相关内容需要的小伙伴可以参考下面文章内容
    2022-06-06
  • Python 如何读取字典的所有键-值对

    Python 如何读取字典的所有键-值对

    这篇文章主要介绍了Python 读取字典的所有键-值对操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Django 实现将图片转为Base64,然后使用json传输

    Django 实现将图片转为Base64,然后使用json传输

    这篇文章主要介绍了Django 实现将图片转为Base64,然后使用json传输,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • 解决Python串口接收无标识不定长数据

    解决Python串口接收无标识不定长数据

    这篇文章主要介绍了解决Python串口接收无标识不定长数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • 如何用python绘制雷达图

    如何用python绘制雷达图

    这篇文章主要介绍了如何用python绘制雷达图,帮助大家更好的利用python进行数据分析,感兴趣的朋友可以了解下
    2021-04-04
  • Python如何使用神经网络进行简单文本分类

    Python如何使用神经网络进行简单文本分类

    这篇文章主要介绍了Python如何使用神经网络进行简单文本分类,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-02-02
  • 浅谈Python 责任链模式

    浅谈Python 责任链模式

    本文主要介绍了浅谈Python 责任链模式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Python实现telnet服务器的方法

    Python实现telnet服务器的方法

    这篇文章主要介绍了Python实现telnet服务器的方法,涉及Python通过Telnet连接服务器的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • Python 如何安装Selenium(推荐)

    Python 如何安装Selenium(推荐)

    Selenium 是一个 Web的自动化测试工具 ,最初是为网站 自动化测试而开发的 , Selenium 可以直接调用浏览器 ,它支持所有主流的浏览器,本文给大家介绍Python 如何安装Selenium,感兴趣的朋友一起看看吧
    2021-05-05
  • pytest多重断言的实现

    pytest多重断言的实现

    本文主要介绍了pytest多重断言的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02

最新评论