参考这个博客,看前面几章没什么感觉,还是到了这一章,参考实际的例子,自己动手写个东西出来的时候,需要自己查string、open等用法,边查边记边写理解的透彻。

整体是照葫芦画瓢,为了练手用,也加了一些指定下载目录,默认下载目录等函数,可以直接运行

#! -*- coding:utf-8 -*-
#! usr/bin/python
# 爬贴吧测试程序
import string,urllib2
import os
# 定义下载网页函数
def tieba_spider(url,begin_page,end_page,path):
	for i in xrange(begin_page,end_page+1):
		tname = string.zfill(i,4) + '.html'#保存成5位名称的html
		print '正在下载第' + str(i) + '个网页,并将其存储为' + tname
		f = open(path  + '\\' + tname,'w+')
		temp = urllib2.urlopen(url + str(i)).read()#读取网页内容
		f.write(temp)
		print '关闭当前已完成文件'
		f.close()

# 创建目录并返回路径
def mkdir(path):
	if path == '.\\':
		# 当前路径则新建临时文件夹
		path = '.\\temp'
		path = path.strip() # 去掉首尾空格
		path = path.rstrip('') # 去掉右侧 \ 符号
		exits = os.path.exists(path)
		if exits:
			print '路径已经存在'
			return path
		else:
			os.makedirs(path)
			print '路径' + path + '创建成功!'
	#非当前路径
	else:
		# 判断路径存在与否
		path = path.strip() # 去掉首尾空格
		path = path.rstrip('') # 去掉右侧 \ 符号
		exits = os.path.exists(path)
		if not exits: # 不存在路径就创建
			os.makedirs(path)
			print path + '创建成功'
		else:
			print path + '已经存在'
			return path
	return path

# 程序说明
print '这是一个下载贴吧网页的小程序,请按照下面格式说明输入数据,会将贴吧内容下载到指定路径'

# 输入网址、开始页,终止页
bdurl = str(raw_input(u'请输入贴吧网址,去掉"pn="后面的页码:\n'))
# 转换成int类型
begin_page = int(raw_input(u'请输入开始下载的页码:\n'))
end_page = int(raw_input('请输入结束页码:\n'))

# 调用函数
tieba_spider(bdurl,begin_page,end_page,mkdir('.\\'))


Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐