python爬取网页题库_用Python爬取本站离线题库
## 这是哪一题?
每当遇到一个新的题目,也许似曾相识、也许从未见过,无论什么情况,尤其在c语言网参加比赛时,为了更快的找到此题的原始题号,往往颇费周折:如果感觉这题做过,首先,根据新题的某些关键字,调用题库的“题目搜索”功能,希望关键字就在题目里,可惜大多数题目与内容的差别很大,常常找不到;于是,又要求助于搜索引擎,把站名、题目的来源、内容里的部分文字都一一罗列出来,才有可能让网络“猜”到这到底是哪一题,题目是什么?很不巧的是,搜索引擎对此也无能为力。
为了搜索到匹配信息,该怎么办呢,有办法,比如在每次做题的时候,伴随代码,把题目和内容也粘贴到代码文件里,在本地搜索就方便多了。
可是目前在本地都做了快2000题了,大部分代码文件都只能匹配题号,没有需求描述,如果不想重做这些题,该怎么找?难道要重新访问这2000个页面,把题目描述一个个地粘贴到代码文件中?不!这不是程序员的做法,真正的程序员可以让机器来完成,让爬虫来实现!
## 怎样获取离线题库
直接看代码:
```python
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
import os
import requests
url_prefix = "https://www.dotcpp.com/oj/problem"
url_suffix = ".html"
url_num = 1000
while url_num <= 2400:
url = url_prefix + str(url_num) + url_suffix
r = requests.get(url)
r.encoding = "utf-8"
fo = open(str(url_num) + url_suffix, "w+")
fo.write(r.text)
fo.close()
url_num+=1
```
如果没有requests可以搜索到相关文档介绍怎么安装,可以看到,本站题库的URL都有相同的前缀和后缀,所不同的只是其中的序号:从1000到2400,一共1401题,爬取后,可以保存成1401个离线HTML文件,再根据内容去搜索就方便多了。
在爬取过程中,发现每保存500页需要2分钟左右,根据不同的网络状况和机器速度,需要的时间可能会有所不同,整个离线题库当下来不会超过10分钟吧!
那么整个题库有多大?如图所示,不超过45MB:
![离线题库的大小](/image_editor_upload/20201109115521_62273.png "离线题库的大小")
请求到的网页文件效果如何:
![离线题库的效果](/image_editor_upload/20201109115803_69201.png "离线题库的效果")
## 如何搜索离线题库
虽然爬取的网页失去了原来的样式,但是效果不是问题,只要能搜索到题目描述信息就行,比如要搜索包含关键词“寂寞”的题目,进入离线题库所在的目录,在Linux系统里直接用一行命令:
`grep -n '寂寞' *`
![搜索离线题库](/image_editor_upload/20201110120222_43650.png "搜索离线题库")
是不是找到了蛛丝马迹,是的,那一题很可能就是第1625题,搜索成功。
0.0分
2 人评分
python爬取网页题库_用Python爬取本站离线题库相关推荐
- python request 等待网页加载_用Python开发爬虫,看这篇文章就够了
现在Python语言大火,在网络爬虫.人工智能.大数据等领域都有很好的应用.今天我向大家介绍一下Python爬虫的一些知识和常用类库的用法,希望能对大家有所帮助. 其实爬虫这个概念很简单,基本可以分成 ...
- python爬取网页实时数据_使用 Python 爬取网页数据
1. 使用 urllib.request 获取网页 urllib 是 Python 內建的 HTTP 库, 使用 urllib 可以只需要很简单的步骤就能高效采集数据; 配合 Beautiful 等 ...
- python爬取网页数据流程_基于Python爬取fofa网页端数据过程解析
FOFA-网络空间安全搜索引擎是网络空间资产检索系统(FOFA)是世界上数据覆盖更完整的IT设备搜索引擎,拥有全球联网IT设备更全的DNA信息.探索全球互联网的资产信息,进行资产及漏洞影响范围分析.应 ...
- python爬取学校题库_利用Python轻松爬取网页题库答案!教孩子不怕尴尬了!
大家有没有遇到这种令人尴尬的情况:"好不容易在网上找到需要的资源数据,可是不容易下载下来!"如果是通过一页一页的粘贴复制来下载,真的让人难以忍受,特别是像我这种急性子,真得会让人窒 ...
- python爬取网页公开数据_如何用Python爬取网页数据
使用Python爬取网页数据的方法: 一.利用webbrowser.open()打开一个网站:>>> import webbrowser >>> webbrowse ...
- 编程python爬取网页数据教程_实例讲解Python爬取网页数据
一.利用webbrowser.open()打开一个网站: >>> import webbrowser >>> webbrowser.open('http://i.f ...
- 用python输出所有的玫瑰花数_用Python爬取WordPress官网所有插件
转自丘壑博客,转载注明出处 前言 只要是用WordPress的人或多或少都会装几个插件,可以用来丰富扩展WordPress的各种功能.围绕WordPress平台的插件和主题已经建立了一个独特的经济生态 ...
- 用python爬取qq空间内容_用python爬取QQ空间
原博文 2016-11-18 17:19 − 好久没写博文了,最近捣鼓了一下python,好像有点上瘾了,感觉python比js厉害好多,但是接触不久,只看了<[大家网]Python基础教程(第 ...
- python 循环定时器 timer显示数据_【Python】多线程、定时循环爬取优信二手车信息...
爬虫 爬取优信二手车:循环遍历每页,获取相应的有价值字段信息,这里不详细阐释了. 多线程 Python中,使用concurrent.futures模块下的ThreadPoolExecutor类来实现线 ...
- python爬虫用什么电脑好_【Python】【爬虫】最近想买电脑,用Python爬取京东评论做个参考...
最近想换电脑,又有点不确定买哪一款.所以决定爬取京东上电脑评论,做个参考,并把最终结果绘制成词云图. 一.先来看下三款电脑评价的词云图 1 用Python爬取京东自营ThinkPad T490s的评论 ...
最新文章
- 使用Python,EoN模拟网络中的疾病扩散模型,并结合matplotlib绘图
- 【c语言】蓝桥杯入门训练 序列求和
- OSChina 周日乱弹 —— 来和养生的技术负责人决斗!
- Xamarin 2017.10.9更新
- NYOJ 28 大数阶乘
- 滑动窗口/二分 - 尽可能使字符串相等
- mysql 隔行记录_php mysql数据输出实现隔行变色的简单示例
- IntelliJ IDEA 2018.2.2远程调试Tomcat的配置方法
- [ExtJS6]ResponsiveColumn-自适应列布局
- HTML5与触摸界面
- CPU+GPU异构集群搭建的总结说明
- 顶隙计算公式_齿轮参数计算公式,这次终于整全了
- 矩形脉冲信号合成_实验10 矩形脉冲信号分解
- Chrome免安装版制作
- shape_predictor_5_face_landmarks.dat以及shape_predictor_68_face_landmarks.dat资源分享
- [ZJCTF 2019]EasyHeap-house of spirit
- 探索性数据分析-如何描述业务量数据
- 视频内容相似度视频数字版权 综述
- 打开UG10 C语言错误,UG打开prt文件UTF8归档报错:部件已以UTF8模式归档,但NX运行
- 浅析智慧消防物联网监管平台的应用