先看几张对比图,分别是官网截图和抓取下来的 txt文档的截图,不算那难看的排版的话,内容是一致的,图片用 url替换了!
在整个抓取过程中,除了普通的文本以外,还需要处理 3个地方,分别是:代码、图片、视频,因为目前只写到了文本文件,所以直接抓到图片或者视频的地址,标识清楚后写入到 txt,这里可以在进一步,写到 word/pdf 或者其他文件,留待以后改进!
Python 数据处理 Python编程从入门到实践 核心编程尾货基础教程 网络爬虫入门书籍 python视频编程从入门到精通 程序设计教材人民邮电
话不多说,先来看看整个爬虫过程吧!目标:廖雪峰官网—python教程
工具:pycharm、python3.6、requests库、time库、lxml库
思路:
85 抓取所有的目录章节 url
85 找到 url内教程主体所在的 div
85 遍历 div下所有标签,文本和代码部分内容直接保存
85 区分其中的代码、图片、视频 3个内容,分别以文本、url的形式保存并做好标识
85 加入时间计数,统计总用时
大致如上,我们先来抓取所有的章节 url,这里我们用 xpath 来匹配 div,然后循环 div下的所有 a标签的文本和 href属性,这两个部分为章节的名字和 url,当然 url部分需要拼接,加入域名就可以了!
Header和主页信息,请自行添加哦!
取到章节信息后,还需要判断是否存在子章节,存在则需要继续取,观察网页后发现子章节所在标签为 a标签的平级 div标签,用 if判断就可以,网页结构如下:
代码我们这样写
其中 get_summary()函数是我自定义的下载函数,代码如下尾货服装批发
传入 3个参数:url是开始我们抓到的章节或者子章节的 url,name为章节名,title为子章节名,默认为空,这样做是为了在写入文件时进行判断,大家自行查看就可以 ,注意的是前面说到的 3个地方,文章中的代码部分是在
标签下,和标签一样取出内容即可,图片和视频所在的标签分别做判断,存在则将 url写入文本!
最终运行程序结果
在 txt下,不要选择自动换行,否则,代码部分就不好看了!整个爬虫部分很简单,复杂的部分是处理各种标签及标签下的其他内容,最后写入文件因为不需要排版,反而简单了。