返回顶部

收藏

截取猫眼票房数据到mongodb

更多
import re
import urllib.request
import time
import pymongo

def GetHtmlCode(url):
    page=urllib.request.urlopen(url)
    htmlCode=page.read().decode('utf-8')
    #fileObj=open('C:\\Users\\Jason\\Desktop\\wy.txt','w',encoding='utf-8')
    #fileObj.write(htmlCode)
    #fileObj.close()
    hc=htmlCode
    return hc

class MovieData:
    MovieName=''
    MovieMoney=''
    MovieMP=''
    MovieDP=''
    MovieAllMoney=''
    def __init__(self,mn,mm,mmp,mdp,mam):
        self.MovieName=mn
        self.MovieMoney=mm
        self.MovieMP=mmp
        self.MovieDP=mdp
        self.MovieAllMoney=mam
    def print(self):
        tm1=time.strftime('%Y-%m-%d  %H:%M:%S')
        tm2=str(tm1)
        print('电影名称: %s \n 票房: %s万元 \n 票房占比: %s \n 屏幕占比: %s \n 总收入: %s万元 \n 收集时间 is : %s '%(self.MovieName,self.MovieMoney,self.MovieMP,self.MovieDP,self.MovieAllMoney,tm2))
        #return ('电影名称: %s \n 票房: %s万元 \n 票房占比: %s \n 屏幕占比: %s \n 总收入: %s万元 \n 收集时间 is : %s '%(self.MovieName,self.MovieMoney,self.MovieMP,self.MovieDP,self.MovieAllMoney,tm2))
    def get(self):
        tm1=time.strftime('%Y-%m-%d  %H:%M:%S')
        tm2=str(tm1)
        return ('电影名称: %s \n 票房: %s万元 \n 票房占比: %s \n 屏幕占比: %s \n 总收入: %s万元 \n 收集时间 is : %s '%(self.MovieName,self.MovieMoney,self.MovieMP,self.MovieDP,self.MovieAllMoney,tm2))
def GetDataBlock(pagecode):
    DataBlock_re = r'<ul class="canTouch[\s\S]+?</ul>'
    DBre=re.compile(DataBlock_re)
    DBList=re.findall(DBre, pagecode)
    #print(DBList[0])
    #num=0
    #for i in DBList:
    #    num=num+1
    #    print(str(num)+'----------------------')
    #   print(i)
    return DBList
def MakeDataInfo(block):
    b1_re=r'<li class=\'c1\'>[\s\S]+?</li>'
    b1=re.search(b1_re, block).group()
    b1=re.sub(r'<li[\s\S]+?<b>','',b1)
    b1=re.sub(r'</b>[\s\S]+?</li>','',b1)
    #print(b1)
    b2_re=r'<li class="c2">[\s\S]+?</li>'
    b2=re.search(b2_re, block).group()
    b2=re.sub(r'<li[\s\S]+?<b>','',b2)
    b2=re.sub(r'</b>[\s\S]+?</li>','',b2)
    #print(b2)   
    b3_re=r'<li class="c3">[\s\S]+?</li>'
    b3=re.search(b3_re, block).group()
    b3=re.sub(r'<li class="c3">','',b3)
    b3=re.sub(r'</li>','',b3)
    #print(b3)
    b4_re=r'<li class="c4">[\s\S]+?</li>'
    b4=re.search(b4_re, block).group()
    b4=re.sub(r'<li class="c4">','',b4)
    b4=re.sub(r'</li>','',b4)
    # print(b4)
    b5_re=r'<li class="c5">[\s\S]+?</li>'
    b5=re.search(b5_re, block).group()
    b5=re.sub(r'<li class="c5">','',b5)
    b5=re.sub(r'<span[\s\S]+?</li>','',b5)
    b5=re.search(r'[\d]+', b5).group()
    #print(b5)
    return MovieData(b1,b2,b3,b4,b5)

client=pymongo.MongoClient('localhost',27017)
db=client.test  
def insert(name,income,rate1,rate2,alincome,time):
    db.movie.insert_one({"name":name,"income":income,"mrate":rate1,"drate":rate2,"allincome":alincome,"time":time})

tm1=time.strftime('%Y-%m-%d  %H:%M:%S')
tm2=str(tm1)
pc=GetHtmlCode('http://piaofang.maoyan.com/')
#print(pc)a
bl=GetDataBlock(pc)
mdata=''
for i in bl:
    mv=MakeDataInfo(i)
    insert(mv.MovieName,mv.MovieMoney,mv.MovieMP,mv.MovieDP,mv.MovieAllMoney,tm2)
    #insert(mv,tm2)
    mv.print()
    mdata=mdata+mv.get()
fileObj=open('C:\\Users\\Jason\\Desktop\\wy.txt','a',encoding='utf-8')
fileObj.write(mdata)
fileObj.close()

标签:python

收藏

0人收藏

支持

0

反对

0

»更多 您可能感兴趣的代码
  1. 2017-12-06 13:46:24水仙花数 by 阮小七
  2. 2017-12-06 11:21:48python操作mysql数据库的简单示例 by 司马
  3. 2017-12-06 09:44:02批量下载文件 by 西国の海妖
  4. 2017-12-06 09:23:38五子棋 by jack.chen
  5. 2017-12-05 12:31:27配置文件备份 by wubai
  6. 2017-12-05 09:35:25python 学习,使用类模拟购物车代码 by 阿明娃儿
  7. 2017-12-04 16:38:15Python有道字典 by jack.chen
  8. 2017-12-03 15:08:33九九乘法表 by 蟋蟀MM
  9. 2017-12-02 15:13:05python验证文件是否可读可写 by 张宋付
  10. 2017-12-02 10:00:23python ftplib模块制作ftp客户端 by wubai
  11. 2017-12-07 09:59:10截取猫眼票房数据到mongodb by jack.chen
相关聚客文章
  1. 小码哥 发表 2017-11-07 08:00:25 Python中的时间处理大总结
  2. 小码哥 发表 2017-11-07 08:19:22 如何快速爬取B站全站视频信息
  3. Gavin 发表 2017-11-06 10:01:37 Python批量给云主机配置安全组
  4. Gavin 发表 2017-11-06 10:06:40 如何使用pdb工具来调试python脚本?
  5. 博主 发表 2017-11-05 04:08:13 C语言实现的Python扩展模块
  6. 博主 发表 2017-11-04 14:40:16 Python 3 极简教程 之 基本数据类型
  7. zhu329599788@126 发表 2017-10-18 09:48:23 打印杨辉三角(python版)
  8. 小码哥 发表 2017-11-04 05:45:55 如何通过Python/Shell对HTTP服务状态的监控?
  9. techug 发表 2017-11-02 03:36:46 用Python复制文件的九种方法
  10. techug 发表 2017-11-03 03:46:27 python奇技淫巧
  11. gonwan 发表 2016-01-11 12:52:41 Coroutines in Python
  12. Charles 发表 2016-12-24 12:25:13 在 CentOS 6.8 上安装 Python 2.7

发表评论