Python爬虫抓取考试试题

今天做了个小玩意,但觉得挺有意思的,分享给大家。主要是这样的,因为帮妹子寻找考试资料,发现同一本书不同的章节分别在不同的链接中,复制起来实在要命,所以就在想能不能用爬虫实现。

首先结合Request和BeautifulSoup来对这个主页进行处理,提取不同章节的href。在这里需要注意,我们的页面是html类型(看网址结尾)。BeautifulSoup中,网页解析器要采用lxml的话,会有半截页面解析不出来。这里使用html5lib解析器。

页面解析出来后,发现解析内容和页面的page source一样,亦即使没有采用js加载内容。通过Inspect定位链接地址,很轻易能找到以下内容,发现所有的章节都在标签为td,分类(class)为lianjie或者lianjielanse里面,章节link的在page source中的位置如图:

这个时候可以通过Beautiful里面的find_all来将符合条件的链接找出来。但同时我们看到两个class其实是有共同点的(前面都是lianjie),这样我们可以将find_all结合正则表达式来减轻我们的工作,详细说明可以看这里的搜索文档树章节。

注意,网址所列出的课程章节是有重复(时间上有更新)的,我这里省方便就没有考虑这个问题了。另外,章节表格最右下角有个空格,实际也是有自己的href的,但既然主页将它隐藏了,那么我们在挑选的时候,也将其排除。

这样就得到一个包含章节题目以及网址的dict了。后面只需要对dict里面的网址内容进行爬虫就好了。

通过Ctrl+F比较快就能定位到内容了。一开始以为这个class是一个定值,后面做循环的时候才发现不是。查看上下文,看到上面有一个class里面包含定值ArticleIntro,并且全文只有你一个,就通过你来定位(注意ArticleIntro后面那段英文也是随机的,所以这里也要用正则表达式提取)。

章节内容的page source的位置以及定位

提取出来的div中,有一些内容是我们不需要的,可以通过BeautifulSoup中的decompose命令结合children和find将他们剔除后删除。

这样就干净了。最后加入循环实现批量处理就好了。对我们的link建立循环,并且将提取出来的内容写入到html结尾的文件中,注意文件打开方式应该是’a’,因为你需要appending:

最后结果只要用浏览器打开就好了。当然,你也可以通过weasyprint将结果输出为pdf。

Python爬虫抓取考试试题相关推荐

  1. python爬取大众点评评论_python爬虫抓取数据 小试Python——爬虫抓取大众点评上的数据 - 电脑常识 - 服务器之家...

    python爬虫抓取数据 小试Python--爬虫抓取大众点评上的数据 发布时间:2017-04-07

  2. python爬虫招聘-Python爬虫抓取智联招聘(基础版)

    原标题:Python爬虫抓取智联招聘(基础版) 作者:C与Python实战 「若你有原创文章想与大家分享,欢迎投稿.」 对于每个上班族来说,总要经历几次换工作,如何在网上挑到心仪的工作?如何提前为心仪 ...

  3. Python学习教程:Python爬虫抓取技术的门道

    Python学习教程:Python爬虫抓取技术的门道 web是一个开放的平台,这也奠定了web从90年代初诞生直至今日将近30年来蓬勃的发展.然而,正所谓成也萧何败也萧何,开放的特性.搜索引擎以及简单 ...

  4. 编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法

    这篇文章主要介绍了编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法,用到了Python的urllib和urllib2模块,需要的朋友可以参考下 抓取豆瓣电影TOP100 一.分析豆瓣top ...

  5. 如何用python爬股票数据_python爬虫股票数据,如何用python 爬虫抓取金融数据

    Q1:如何用python 爬虫抓取金融数据 获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一.鉴于此,我拾起了Python这把利器,开启了网络爬虫之路. 本篇使用的版本为 ...

  6. Python爬虫抓取某音乐网站MP3(下载歌曲、存入Sqlite)

    Python爬虫抓取某音乐网站MP3(下载歌曲.存入Sqlite) 最近右胳膊受伤,打了石膏在家休息.为了实现之前的想法,就用左手打字.写代码,查资料完成了这个资源小爬虫.网页爬虫, 最主要的是协议分 ...

  7. python爬虫app步骤_Python爬虫抓取手机APP的传输数据,python爬虫抓取app

    Python爬虫抓取手机APP的传输数据,python爬虫抓取app 大多数APP里面返回的是json格式数据,或者一堆加密过的数据 .这里以超级课程表APP为例,抓取超级课程表里用户发的话题. 1. ...

  8. Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储(转)

    Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...

  9. Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

最新文章

  1. mediawiki java api_维基百科 MediaWiki API 解析
  2. Ajax 请求超时与网络异常
  3. java doc转pdf_java 完美解决 ppt/pptx 转pdf 源码
  4. java8日期_Java8日期与时间
  5. json在线解析工具大集合
  6. Python基础之格式化输出函数format()详解
  7. node模块加载机制。
  8. Linux下如何查找软件安装路径(mysql为例)
  9. 兼容iOS 10 资料整理笔记
  10. wpf mvvm框架_[Windows] 在 Microsoft Docs 网站中挖掘 MVVM 的各种学习资源
  11. 【java笔记】java语言的跨平台性和运行环境
  12. a标签的CSS伪类,点击后变色
  13. HAProxy的安装和部署
  14. Picasso通过URL获取--用户头像的圆形显示
  15. java小程序(万年历)
  16. 网络监控软件百络网警 v6.6b 家庭版 下载
  17. c语言输出字符串需要取地址吗,char *str;……printf(%p,str);是输出地址吗?还是只与str说占空间大 - C语言论坛 - 编程论坛...
  18. ChucK初步(7)
  19. kvm虚拟机上安装kata
  20. NetSuite 库存盘点

热门文章

  1. Android 相机预览方向和拍照方向
  2. 设断点报错:Frames are not available
  3. QT学习笔记(六)——QT弹出对话框并在主窗口调用对话框的信息
  4. 用NCBI的工具Batch Entrez批量下载序列
  5. 微信公众平台之CURL应用access_token
  6. isosurface matlab,matlab isosurface
  7. echart图表x轴横轴逐步左移动
  8. java 字节码查看_一种查看java字节码时显示方法调用关系图的方法与流程
  9. 实战:使用Pytorch搭建分类网络(肺结节假阳性剔除)
  10. 全国24小时降水量pyecharts可视化分析