范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

用Python编写网页爬虫爬取oj上的代码

  今天我们给大家讲解一下关于Python爬取网页的源代码,直接是干货,在代码中有不足之处,或者专业的Python高级开发程序员大神有更便捷的方式,我们可以共享。
  #-*-coding:cp936-*-
  importurllib2
  importurllib
  importre
  importthread
  importtime
  importcookielib
  cookie_support=urllib2.HTTPCookieProcessor(cookielib.CookieJar())
  opener=urllib2.build_opener(cookie_support,urllib2.HTTPHandler)
  urllib2.install_opener(opener)
  #以下是正則表達式部分,意在过滤爬取页面的标签信息
  classTool:
  A=re.compile(";")#A-J对标签进行匹配
  B=re.compile("
  ")
  C=re.compile("<;")
  D=re.compile(">;")
  E=re.compile("";")
  F=re.compile("&")
  G=re.compile("TimesNewRoman">")
  H=re.compile("")
  I=re.compile(""")
  J=re.compile(r"语言.*?face=")
  defreplace_char(self,x):#将标签内容替换成目标内容
  x=self.A.sub("",x)
  x=self.B.sub("",x)
  x=self.C.sub("<",x)
  x=self.D.sub(">",x)
  x=self.E.sub(""",x)
  x=self.F.sub("&",x)
  x=self.G.sub("",x)
  x=self.H.sub("",x)
  x=self.I.sub(""",x)
  x=self.J.sub("",x)
  returnx
  classHTML_Model:
  def__init__(self,u,p):
  self.userName=u#username与password等登入信息
  self.passWord=p
  self.mytool=Tool()
  self.page=1#从代码页的第一页開始爬
  self.postdata=urllib.urlencode({
  "userName":self.userName,
  "password":self.passWord
  })
  defGetPage(self):
  myUrl="http://acm.njupt.edu.cn/acmhome/login.do"
  #请求包括网址和登入表单
  req=urllib2.Request(
  url=myUrl,
  data=self.postdata
  )
  #此次对应为打开这个url
  myResponse=urllib2.urlopen(req)
  #读取页面
  myPage=myResponse.read()
  flag=True
  #当flag为true时继续抓取下一页
  whileflag:
  #下一页网址
  myUrl="http://acm.njupt.edu.cn/acmhome/showstatus.do?problemId=null&contestId=null&userName="+self.userName+"&result=1&language=&page="+str(self.page)
  #print(myUrl)
  myResponse=urllib2.urlopen(myUrl)
  #打开下一页的页面
  myPage=myResponse.read()
  #正則表達式搜索是否还有下一页,更新flag.原理为在当前页查找,假设当前页面有提交的代码,则含有相似"G++"这种标签.也就是说假设我的代码仅仅有84页,那么则在第85页flag-false,不再訪问86页
  st="
  next=re.search(st,myPage)
  #print(st)
  print(next)
  ifnext:
  flag=True
  print("True")
  else:
  flag=False
  print("False")
  #print(myPage)
  #找到当前页面下全部题目代码的连接,放在myItem这个list中
  myItem=re.findall(r"
  foriteminmyItem:
  #print(item)
  #对于每一个题目代码连接,訪问其所在页面
  url="http://acm.njupt.edu.cn/acmhome/solutionCode.do?id="+item[37:len(item)-2]
  #print(url)
  myResponse=urllib2.urlopen(url)
  myPage=myResponse.read()
  mytem=re.findall(r"语言.*?.*?TimesNewRoman">.*?",myPage,re.S)
  #print(mytem)
  sName=re.findall(r"源码--.*?;")
  E=re.compile("";")
  F=re.compile("&")
  G=re.compile(""TimesNewRoman">")
  H=re.compile("")
  I=re.compile(""")
  J=re.compile(r"语言.*?face=",re.DOTALL)
  defreplace_char(self,x):
  x=self.A.sub("",x)
  x=self.B.sub("",x)
  x=self.C.sub("<",x)
  x=self.D.sub(">",x)
  x=self.E.sub(""",x)
  x=self.F.sub("&",x)
  x=self.G.sub("",x)
  x=self.H.sub("",x)
  x=self.I.sub(""",x)
  x=self.J.sub("",x)
  returnx
  classHTML_Model:
  def__init__(self,u,p):
  self.userName=u
  self.passWord=p
  self.mytool=Tool()
  self.page=81
  self.postdata=urllib.urlencode({
  "userName":self.userName,
  "password":self.passWord
  })
  defGetPage(self):
  myUrl="http://acm.njupt.edu.cn/acmhome/login.do"
  req=urllib2.Request(
  url=myUrl,
  data=self.postdata
  )
  myResponse=urllib2.urlopen(req)
  myPage=myResponse.read()
  flag=True
  whileflag:
  myUrl="http://acm.njupt.edu.cn/acmhome/showstatus.do?problemId=null&contestId=null&userName="+self.userName+"&result=1&language=&page="+str(self.page)
  #print(myUrl)
  myResponse=urllib2.urlopen(myUrl)
  myPage=myResponse.read()
  st="
  next=re.search(st,myPage)
  #print(st)
  print(next)
  ifnext:
  flag=True
  print("True")
  else:
  flag=False
  print("False")
  #print(myPage)
  myItem=re.findall(r"
  foriteminmyItem:
  #print(item)
  url="http://acm.njupt.edu.cn/acmhome/solutionCode.do?id="+item[37:len(item)-2]
  #print(url)
  myResponse=urllib2.urlopen(url)
  myPage=myResponse.read()
  mytem=re.findall(r"语言.*?.*?TimesNewRoman">.*?",myPage,re.S)
  #print(mytem)
  sName=re.findall(r"源码--.*?
OPPO智能指环专利获授权,显示屏可拉伸IT之家4月7日消息,国家知识产权局信息显示,4月5日,OPPO广东移动通信有限公司智能指环专利获得授权,授权公告号为CN216210919U和CN216165684U。IT之家了景业智能(688290。SH)拟公开发行2060万股预计一季度营业收入约3500万至3800万元格隆汇4月10日丨景业智能(688290。SH)公布,本次拟公开发行股份2,060。00万股,占本次公开发行后总股本的25。00,本次发行后公司总股本为8,240。00万股。本次发售价21。5832。98万元,比亚迪新款汉改了哪?哪款最超值?4月10日,比亚迪汽车举办了线上发布会,发布了集团旗下旗舰小汽车汉的最新款汽车。在其中特性最牛的汉DMp发布了一款四驱旗舰型,市场价为31。98万余元,它的百家公里加快時间仅为3。一双手,给网暴带来多大的推动力?最近在刷视频,总是看到关于网暴这方面的。说实话,很让我感慨这世界到底怎么了?为何不多留点善意给陌生人?一女子给叮咚买菜骑手打赏200元,被网暴后跳楼身亡。4月3日,一女子想给听障父风行游艇4月上市,动力强空间大,7人旅行无压力,多少钱能火?4月份上市的新车大多都是新能源汽车,电动汽车时代的到来已经无法避免,不管你喜欢还是不喜欢,新能源汽车对乘用车市场的渗透率只会越来越高,再加上油价居高不下,更成了压垮燃油汽车的最后一腾讯投了个动力电池红杉五源三轮追投一家元宇宙公司丨投融周报本周焦点回顾大厂投资动态。小米投了个环保公司,腾讯投了个快充电池供应商,百度还投了一家小米投过的洗碗机制造商。新消费赛道,智能家居成新宠。4月6日消息,智能洗碗机制造商轻美电器获得户外投影仪什么牌子好?露营投影仪怎么选?看了这篇你就知道了人间最美四月天,天气较为适合露营游玩,可以到居住地周边来场户外活动,和长辈爱人一起领着孩子去户外,或者邀请上三五好友玩。小编有关注到网友搜索关于户外投影仪多少流明才好,野外用露营看突发逆变器故障导致动力丢失,特斯拉近13万辆Model3宣布召回不管失事多少次,不管召回多少遍,消费者依然爱特斯拉如初恋。日前,特斯拉向国家市场监督管理总局备案了召回计划。自2022年4月7日起,召回生产日期在2019年1月11日至2022年1连续两年上调会员价格,腾讯视频为何如何迫不及待?腾讯视频近日宣布调整VIP会员价格。在经济下行,疫情频发的情况下,视频平台的影视娱乐节目是抚慰人心焦虑的最佳良药。腾讯视频选择在此时涨价,显得吃相过于难看。腾讯视频为何如此迫不及待苹果将下调iPhone13系列价格以前常说iPhone手机贵,现在还会有这个观念吗?其实iPhone手机并没有涨到价格,甚至近两年都是加量不加价的情况,以前安卓2000块钱的时候,iPhone4s卖4500块钱,现小米有品推穷人剃须刀,被罗永浩狂卖300万,价格很实在剃了十年胡子,我都不懂为什么一把电动剃须刀的价格,能差十几倍?大学时用一把49的剃须刀,4年下来也是干干净净,没有受过伤。前阵子七夕,女票送我一套1000,心疼死了,后来还被她拿去
电池巨头入局,换电会是个好生意吗?(本文首发于刘润公号,订阅刘润公号,和我一起洞察商业本质)1前段时间,电池巨头宁德时代,推出换电品牌EVOGO,发布巧克力电池自动换电站等系列产品。这件事受到很多人关注。其实不只宁宁王员工被撬打维权官司多公司入场瓜分新能源电池蛋糕本报记者矫月李婷2月14日,有报道称,宁德时代以不正当竞争为由起诉蜂巢能源。对此消息,宁德时代方面人士于14日当天回复证券日报记者表示该案正在法律程序中,公司不做回应。此外,蜂巢能知乎否认安装和使用过行为感知系统来源北京青年报可监测员工离职倾向深信服开发的网络监测系统引发争议知乎否认安装和使用过行为感知系统近日,有知乎员工称,知乎视频部门正在进行一轮大规模裁员而通过公司的一个内部系统,可以亚马逊仓库把我的货物弄丢了不承认,把我账户关闭后又找出来了亚马逊踏坑系列之物流篇1由于卖家把货物发运到亚马逊FBA仓库后,所有的订单配送售后退换货都由亚马逊全部负责处理,所以绝大多数卖家不会关心自己的货物是否被亚马逊弄丢了。以我的经历看,不务正业,著名相机品牌推出高端手表系列我们国内大部分表友认识徕卡(Leica)可能都是因为华为的旗舰手机相机。徕卡向来是相机品牌中最钟爱限量款和周边产品的品牌。这不,在2018年发布的全新自产手表终于在近日上市了。19小米招聘啦岗位职责1总体负责AI视觉能力在小爱的落地2参与人工智能Android软件的需求工作,撰写相关技术文档3负责人工智能Android软件的设计和开发工作4负责人工智能Android手指纹解锁最优解最近发布的手机都是侧面电源键指纹解锁了。不明白有那么多人无知的人吐槽为什么不是屏幕指纹解锁?那么我们来分解一下指纹解锁的步骤,场景手机放台面。1,背后指纹拿手机起来,触摸解锁。2,东南亚手机市场洗牌小米无缘前三,OPPO痛失第一,三星重夺王位文球子审核子扬校正知秋目前,国产手机厂商已经将发展重心由国内逐渐向海外转移,同时,由于国产手机厂商的搅局,不少国家的智能手机市场格局彻底被打乱。2月11日集微网消息,知名市调机构Ciphone13pro绿屏各机友如何?iphone12系列,很多人都绿屏包括我自己订购两台都是绿屏让我退了苦等了一年首发订购13pro128g7999。拿到机器第一就是正常用看是否绿屏还好一切都正常随着系统的更新更到1科研笔记神器一边视频,一边笔记,轻松搞定B站视频学习上一期,笔者介绍了一款笔记神器Obsidian,它可以用于思维导图和知识管理。高效阅读和写作,席卷科研圈的科研神器由于计算机互联网技术的发展,线上学习视频学习已经成为了一种流行的学8K超高清视频时代,如何拍摄创作质感大片?去年12月,B站正式上线8K视频功能,进入8K超高清视频时代,画质极限再突破!而高端相机厂商早已开始推出视频向机型,主打8K视频录制功能。手机拍照也不遑多让,今年1月上市的不少旗舰