Python新手爬虫,简单制作抓取廖雪峰的教程的小爬虫

先看几张对比图,分别是官网截图和抓取下来的txt文档的截图,不算那难看的排版的话,内容是一致的,图片用url替换了!

在整个抓取过程中,除了普通的文本以外,还需要处理3个地方,分别是:代码、图片、视频,因为目前只写入了文本文件,所以直接抓到图片或者视频的地址,标识清楚后写入到txt,这里可以再进一步,写到word/pdf或者其他文件,留待以后改进!

话不多说,先来看看整个爬虫过程吧!

目标:廖雪峰官网—python教程

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

思路:

抓取所有的目录章节url

找到url内教程主体所在的div

遍历div下所有标签,文本和代码部分内容直接保存

区分其中的代码、图片、视频3个内容,分别以文本、url的形式保存并做好标识

加入时间计数,统计总用时

大致如上,我们先来抓取所有的章节url,这里我们用xpath 来匹配div,然后循环div下的所有a标签的文本和href属性,这两个为章节的名字和url,当然url部分需要拼接,加入域名就可以!

Header和主页信息,请自行添加哦!

取到章节信息后,还需要判断是否存在子章节,存在则需要继续取,观察网页后发现子章节所在标签为a标签的平级div标签,用if判断就可以!网页结构如下

代码我们这样写

其中get_summary()函数是我自定义的下载函数,代码如下

传入3个参数:url是开始我们抓到的章节或者子章节的url,name为章节名,title为子章节名,默认为空,这样做是为了在写入文件时进行判断,大家自行查看就可以,注意的是前面说到的3个地方,文章中的代码部分是在

标签下,和

标签一样取出内容即可,图片和视频所在的标签分别做判断,存在则将url写入文本!

最终运行程序结果

在txt下,不要选择自动换行,否则,代码部分就不好看了!

整个爬虫部分很简单,复杂的部分是处理各种标签及标签下的其他内容,最后写入文件因为不需要排版,反而简单。

欢迎大家来找我一起交流,完善代码!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180421A0MXYK00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券