加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

截取猫眼票房数据到mongodb

发布时间:2020-12-17 17:13:12 所属栏目:Python 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 import reimport urllib.requestimport timeimport pymongodef GetHtmlCode(url): page=urllib.request.urlopen(url) htmlCode=page.read().decode('u

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

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:UsersJasonDesktopwy.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,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,tm2))
def GetDataBlock(pagecode):
    DataBlock_re = r'<ul class="canTouch[sS]+?</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'>[sS]+?</li>'
    b1=re.search(b1_re,block).group()
    b1=re.sub(r'<li[sS]+?<b>','',b1)
    b1=re.sub(r'</b>[sS]+?</li>',b1)
    #print(b1)
    b2_re=r'<li class="c2">[sS]+?</li>'
    b2=re.search(b2_re,block).group()
    b2=re.sub(r'<li[sS]+?<b>',b2)
    b2=re.sub(r'</b>[sS]+?</li>',b2)
    #print(b2)   
    b3_re=r'<li class="c3">[sS]+?</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">[sS]+?</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">[sS]+?</li>'
    b5=re.search(b5_re,block).group()
    b5=re.sub(r'<li class="c5">',b5)
    b5=re.sub(r'<span[sS]+?</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:UsersJasonDesktopwy.txt','a',encoding='utf-8')
fileObj.write(mdata)
fileObj.close()

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读