截取猫眼票房数据到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】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |