python编写爬虫小程序


Posted in Python onMay 14, 2015

起因

深夜忽然想下载一点电子书来扩充一下kindle,就想起来python学得太浅,什么“装饰器”啊、“多线程”啊都没有学到。
想到廖雪峰大神的python教程很经典、很著名。就想找找有木有pdf版的下载,结果居然没找到!!CSDN有个不完整的还骗走了我一个积分!!尼玛!!
怒了,准备写个程序直接去爬廖雪峰的教程,然后再html转成电子书。

过程

过程很有趣呢,用浅薄的python知识,写python程序,去爬python教程,来学习python。想想有点小激动……
果然python很是方便,50行左右就OK了。直接贴代码:

# coding:utf-8
import urllib

domain = 'http://www.liaoxuefeng.com'      #廖雪峰的域名
path = r'C:\Users\cyhhao2013\Desktop\temp\\'  #html要保存的路径

# 一个html的头文件
input = open(r'C:\Users\cyhhao2013\Desktop\0.html', 'r')
head = input.read()

# 打开python教程主界面
f = urllib.urlopen("http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000")
home = f.read()
f.close()

# 替换所有空格回车(这样容易好获取url)
geturl = home.replace("\n", "")
geturl = geturl.replace(" ", "")

# 得到包含url的字符串
list = geturl.split(r'em;"><ahref="')[1:]

# 强迫症犯了,一定要把第一个页面也加进去才完美
list.insert(0, '/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000">')

# 开始遍历url List
for li in list:
  url = li.split(r'">')[0]
  url = domain + url       #拼凑url
  print url
  f = urllib.urlopen(url)
  html = f.read()

  # 获得title为了写文件名
  title = html.split("<title>")[1]
  title = title.split(" - 廖雪峰的官方网站</title>")[0]

  # 要转一下码,不然加到路径里就悲剧了
  title = title.decode('utf-8').replace("/", " ")

  # 截取正文
  html = html.split(r'<!-- block main -->')[1]
  html = html.split(r'<h4>您的支持是作者写作最大的动力!</h4>')[0]
  html = html.replace(r'src="', 'src="' + domain)

  # 加上头和尾组成完整的html
  html = head + html+"</body></html>"

  # 输出文件
  output = open(path + "%d" % list.index(li) + title + '.html', 'w')
  output.write(html)
  output.close()

简直,人生苦短我用python啊!

以上所述就是本文的全部内容了,希望大家能够喜欢。

Python 相关文章推荐
Python中optionParser模块的使用方法实例教程
Aug 29 Python
python查看zip包中文件及大小的方法
Jul 09 Python
浅谈Python peewee 使用经验
Oct 20 Python
python 删除指定时间间隔之前的文件实例
Apr 24 Python
python3 selenium 切换窗口的几种方法小结
May 21 Python
Pytorch加载部分预训练模型的参数实例
Aug 18 Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
Oct 23 Python
python filecmp.dircmp实现递归比对两个目录的方法
May 22 Python
在Keras中实现保存和加载权重及模型结构
Jun 15 Python
Java byte数组操纵方式代码实例解析
Jul 22 Python
Python中的xlrd模块使用整理
Jun 15 Python
Github 使用python对copilot做些简单使用测试
Apr 14 Python
讲解Python中if语句的嵌套用法
May 14 #Python
详解Python中的条件判断语句
May 14 #Python
Python3通过Luhn算法快速验证信用卡卡号的方法
May 14 #Python
Python入门教程之if语句的用法
May 14 #Python
Python随机生成信用卡卡号的实现方法
May 14 #Python
讲解Python中运算符使用时的优先级
May 14 #Python
讲解Python中的标识运算符
May 14 #Python
You might like
php提交post数组参数实例分析
2015/12/17 PHP
thinkPHP简单调用函数与类库的方法
2017/03/15 PHP
jquery 学习之二 属性 文本与值(text,val)
2010/11/25 Javascript
jquery 选项卡效果 新手代码
2011/07/08 Javascript
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
使用Nodejs开发微信公众号后台服务实例
2014/09/03 NodeJs
悬浮广告方法日常收集整理
2016/03/18 Javascript
jquery mobile界面数据刷新的实现方法
2016/05/28 Javascript
对象转换为原始值的实现方法
2016/06/06 Javascript
jQuery 自定义下拉框(DropDown)附源码下载
2016/07/22 Javascript
jQuery Masonry瀑布流插件使用方法详解
2017/01/18 Javascript
Node连接mysql数据库方法介绍
2017/02/07 Javascript
jQuery插件ContextMenu自定义图标
2017/03/15 Javascript
详解Angular 4 表单快速入门
2017/06/05 Javascript
详解express与koa中间件模式对比
2017/08/07 Javascript
基于jQuery.i18n实现web前端的国际化
2018/05/04 jQuery
详解 微信小程序开发框架(MINA)
2019/05/17 Javascript
python批量下载图片的三种方法
2013/04/22 Python
Python实现代码统计工具(终极篇)
2016/07/04 Python
python生成二维码的实例详解
2017/10/29 Python
Python设计模式之外观模式实例详解
2019/01/17 Python
python 实现12bit灰度图像映射到8bit显示的方法
2019/07/08 Python
Python3开发环境搭建详细教程
2020/06/18 Python
全球性的在线鞋类品牌:Public Desire
2019/04/03 全球购物
波兰珠宝品牌:YES
2019/08/09 全球购物
加拿大大码女装购物网站:Penningtons
2020/12/26 全球购物
Java基础知识面试题
2014/03/25 面试题
仓库门卫岗位职责
2013/12/22 职场文书
美丽乡村建设实施方案
2014/03/23 职场文书
三方合作协议书范本
2014/04/18 职场文书
美术兴趣小组活动总结
2014/07/07 职场文书
学生会竞选演讲稿纪检部
2014/08/25 职场文书
一份没有按时交货失信于客户的检讨书
2014/09/19 职场文书
公司员工宿舍管理制度
2015/08/07 职场文书
用Python将GIF动图分解成多张静态图片
2021/06/11 Python
Java存储没有重复元素的数组
2022/04/29 Java/Android