Python新手都可以做的爬虫,抓取网上 OJ 题库信息

最近有朋友在做OJ题库,顺手做个小爬虫,导出一份题库列表来看看!

目标:浙江大学题库

工具:python3.6,requests库、lxml库、pycharm

思路:先找到网页中题库所在的位置

然后我们点击第一页和后面几页,看看url的变化

发现规律了吗?就是Number后面的页数变了,其他的都没变,这样就很方便构建循环了,在来看看源码中题目的title和Id以及url的位置

是不是很明显,在a标签的属性中有具体的URL,包括ID也在URL中出现,而title在font标签中出现了,这样就很简单了,我们直接用xpath抓取td标签,然后匹配出url和title,并且切割url把id也写出来(这里偷懒就不去上面的td中单独抓取ID了),然后写到字典中吧,这样方便查看,代码如下:

20多行代码全部搞定,运行结果如下:

不到10秒全部抓到本地了,当然这里注意不要重复运行,很可能会被封IP的哦!

将txt文档中的内容复制到在线解析json的网页中,看看结果

完美呈现~!当然了,大家有兴趣可以去题目的url中将题目也抓出来,这个可以做为下一步改进的地方!

非常简单的一个小爬虫,python在做这方面的工作还是很给力的,欢迎大家来和我一起学习python!

原文发布于微信公众号 - 云飞学python(P542110741)

原文发表时间:2018-04-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据和云

数据恢复 - ORA-600 18018错误的重现和修复

小心,有一个ORA-600的错误正在靠近。 对于Oracle的管理员来说,600是一个熟悉而陌生的数字,熟悉的是很多的用户都会遇到几次,陌生的是绝大数情况下都...

37360
来自专栏草根专栏

使用C# (.NET Core) 实现适配器模式 (Adapter Pattern) 和外观模式 (Facade Pattern)

本文的概念内容来自深入浅出设计模式一书 现实世界中的适配器(模式) ? 我带着一个国标插头的笔记本电脑, 来到欧洲, 想插入到欧洲标准的墙壁插座里面, 就需要用...

30460
来自专栏更流畅、简洁的软件开发方式

三层架构之我见 —— 不同于您见过的三层架构。

       我从02年开始了编程的工作,开始接触一些简单的网站,下半年写了个小的自助建站程序(asp和asp.net),比较简陋没有使用。03年开始正式做网站...

21270
来自专栏编程

淘宝iOS端圣诞节雪花实现分析

前言 1 我们产品在群里说淘宝APP有雪花了,于是我从被窝里掏出了手机看下,哇塞飘雪花了! 如图: ? 那我就分析一下他们的实现方式吧。 分析淘宝APP 2 2...

29070
来自专栏我是攻城师

Redis 3.0.0正式版发布,全新的分布式高可用数据库

39070
来自专栏noteless

2.计算机组成-数字逻辑电路 门电路与半加器 异或运算半加器 全加器组成 全加器结构 反馈电路 振荡器 存储 D T 触发器 循环移位 计数器 寄存器 传输门电路 译码器 晶体管

所以想要准确的保存一个比特,你需要保持住D的值,持续经过CP从0~1然后再到0的过程

50330
来自专栏有趣的django

python面试

1. 先做自我介绍 2. 做Python几年了?为什么选择Python? 3. 学历?大学什么专业? 4. 除了Python以外对其他语言有没有了解? 5. 你...

45740
来自专栏haifeiWu与他朋友们的专栏

复杂业务下向Mysql导入30万条数据代码优化的踩坑记录

从毕业到现在第一次接触到超过30万条数据导入MySQL的场景(有点low),就是在顺丰公司接入我司EMM产品时需要将AD中的员工数据导入MySQL中,因此楼主负...

17440
来自专栏前端大白专栏

在使用angular2中使用nodejs创建服务器,并成功获取参数

17370

使用Apache Flink进行流处理

如果在你的脑海里,“Apache Flink”和“流处理”没有很强的联系,那么你可能最近没有看新闻。Apache Flink已经席卷全球大数据领域。现在正是这样...

59520

扫码关注云+社区

领取腾讯云代金券