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

用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"源码--.*?
个人喜欢小屏手机,有什么颜值高性能给力的吗,二手没关系?一说到小屏手机,很多人都会又爱又恨。恨的是现在的手机越做越大,爱的是小屏手机那种精致感是大屏手机所给不了的。国产手机中基本是没有什么太好的小屏手机,很多带有se的版本都是旗舰手机的内蒙古特产生态互联网特产,打造地方特色特产特产是指来源于特定区域品质优异的农林产品或加工产品,可以是直接采收的原料,也可以经特殊工艺加工的制品,但是,必须具备两个特点,一是地域性特点,这是形成特产的一个先决条件,其次是品质特色旗舰价格触底,内行捡漏已开始买新不买旧是在手机行业内一直流传着的一句话。毕竟新产品无论是从产品设计还是硬件堆砌系统优化都是当下最新最好的。但说白一点,这真的是相当片面了,因为并不是所有的人都追求极致的性能完美推荐几款目前能打的专业游戏手机,有你喜欢的一款吗?推荐几款目前能打的专业游戏手机,有你喜欢的一款吗?第一款红魔6红魔6似乎使用了风冷散热系统,这有助于其发挥骁龙888的全部威力。此前在红魔3上,红魔就率先采用了主动式散热的风冷技术币圈惊现6亿美元盗窃案因为好玩!黑客退款是对金钱不感兴趣盗币周二,PolyNetwork宣布遭黑客入侵,30多分钟内价值超6。1亿美元的资产被洗劫一空,包括3。02亿枚USDT5。5万枚ETH2000枚比特币等若干类代币。6。1亿美元的助听器必须医院验配吗?为什么?医院本身没有验配助听器的,都是助听器代理跟医院有合作的,医生检查完,如果需要配助听器就会把你介绍给合作的代理,验配完了去他们的办公室一般都在写字楼里面去取机,建议你去专业的连锁的听微信这5个地方不设置,陌生人就能随意看到你的隐私,快告诉家人本文编辑今日头条作者维权骑士签约用户小俊技术分享独家原创制作未经授权严禁转载,发现抄袭者将进行全网维权投诉分享生活小妙招,享受科技新生活!大家好,欢迎来到今天的知识分享!我是你们的数博会专业论坛聚焦元宇宙笔者从2022中国大数据产业博览会执委会获悉,元宇宙专业论坛将于5月26日下午在数博会官网(httpswww。bigdataexpo。cn)举行,嘉宾将围绕突破虚实超越想象共享元宇科学各学科的疆界科学的宏伟目标是弄清楚事物是如何运作的,这包括一些巨大的问题,比如宇宙从哪里来?宇宙是如何形成的?所有这些是如何运行和相互作用的?人类的智慧能够用我们的思想去体验和探索宇宙吗?自从物联网工程专业该怎么学?麦叔吐血整理!物联网知识点(总结)文章目录一物联网的定义二物联网架构及组成三RFID系统组成及示意图四云计算云存储五传感器网络六大数据的定义及特征七传感器的基本原理八物理量数据采集过程九模拟信号转换为数字信号的三个杜甫学过物理吗?科学家从古诗词中给你不一样的答案内涵丰富的中国古诗词,总有回味无穷的意境和韵味。科学玩跨界,在诗词之美中发现科学之光。北京交通大学陈征老师以科学视角重新解读诗词,锁定本系列趣味科普课,一起发现诗词中的科学世界北京
张一鸣退居幕后保持平常心在张一鸣看来,心态放缓,一方面能避免短期业务焦虑的包袱,另一方面不带固定预期地对未来有开阔的想象,有更长远的目标。因为没有束缚,才对更长期保持想象力。文中国企业家记者赵东山编辑李薇申通暴力快递惹恼网友兄妹年损60亿身家,曾意外改变快递格局一群身穿普通羽绒服和棉袄,看上去并不像快递方面的人员,在杂乱堆积的一堆快递间来回翻找,其中有的快递还会被他们随手高高抛弃,扔到不远处进行所谓的分类随着一则暴力分拣的视频在网上传播,阿里紫光,失之交臂文谢泽锋编辑杨旭然出品tidebiz持续了5个月的紫光集团司法重整案终于尘埃落定。原本被外界认为最有希望的阿里意外败北,建广和智路组成的联合体成为最终接盘方。这样的结局,既在情理之年末手机大跳水!目前最值得入的4款手机,最高下跌2300元2021年接近尾声,各大手机厂商的压箱底也秀得差不多了,机圈终于又迎来了买手机抄底价的好时候。越来越多高性能手机价格大跳水,最高下跌2300元!笔者根据跳水手机排名,给大家整理出了龙芯与统信合作,要迁移windows生态来支持龙芯UOS系统熟悉PC产业的都清楚,在PC领域有一个厂商们跨不过去的联盟,那就是wintel联盟,指的是微软的windows绑定了intel的X86架构。非X86架构的芯片不能安装windows腾讯对京东持股比例降至2。3,刘炽平辞任京东董事新京报贝壳财经讯(记者程子姣)12月23日,京东集团公告称,腾讯控股有限公司目前间接持有京东集团已发行股份约17。0,宣布将向其股东分配其持有的京东集团约4。6亿股A类普通股。分配腾讯回应派息式减持京东被投企业有持续自筹资金能力时退出品玩12月23日讯,腾讯称,投资发展期的成长型企业一直是腾讯投资的主要战略方向,而当被投企业有持续自筹资金能力时,则选择在适当情况下退出投资并与股东分享收益,腾讯的长期投资战略从未新华社将发NFT,可惜是腾讯至信链在元宇宙概念被玩滥的时候,没想到浓眉大眼的新华社也来凑热闹。12月22日,新华社微博宣布,将于12月24日2000通过区块链NFT技术,发行限量藏品。据介绍,该系列收藏品将精选的2刘强东取代腾讯成京东第一大股东,刘炽平卸任京东董事来源深圳商报读创12月23日,腾讯宣布,计划将所持有的约4。6亿股京东股份作为中期股息派发给腾讯股东。派发完成后,腾讯持有京东股份占比将从17降至2。3。腾讯控股称,鉴于本集团减少新消费晚报星巴克被曝使用过期食材腾讯3。5亿入股玻尿酸龙头百草味擅用奥运元素新消费日报12月13日讯,今日新消费晚报的主要内容有苏宁发布双十二数据阿里巴巴1亿美元投资生鲜超市品牌北京已审批5家中小学线上学科培训非营利机构。行业要闻星巴克被曝使用过期食材据媒腾讯出手!跨界医美,3。5亿入股玻尿酸龙头互联网巨头腾讯跨界医美!早盘,鲁商发展股价一度大涨近6,之后略有回调,截至发稿,涨1。17,报13。85元股。消息面上,鲁商发展公告称,腾讯3。51亿元认购公司下属公司福瑞达生物增