一个简单的百度贴吧爬虫程序:
代码:
# -*- coding: utf-8 -*- #--------------------------------------- # 程序:百度贴吧爬虫 # 语言:Python 2.7 # 操作:输入带分页的地址,去掉最后面的数字,设置一下起始页数和终点页数。 # 功能:下载对应页码内的所有页面并存储为html文件。 #--------------------------------------- import string, urllib2 #定义百度函数 def baidu_tieba(url,begin_page,end_page): for i in range(begin_page, end_page+1): sName = string.zfill(i,5) + ‘.html‘#自动填充成六位的文件名 print ‘正在下载第‘ + str(i) + ‘个网页,并将其存储为‘ + sName + ‘......‘ f = open(sName,‘w+‘) m = urllib2.urlopen(url + str(i)).read() f.write(m) f.close() #-------- 在这里输入参数 ------------------ bdurl = str(raw_input(u‘请输入贴吧的地址,去掉pn=后面的数字:\n‘)) begin_page = int(raw_input(u‘请输入开始的页数:\n‘)) end_page = int(raw_input(u‘请输入终点的页数:\n‘)) #-------- 在这里输入参数 ------------------ #调用 baidu_tieba(bdurl,begin_page,end_page)
学习笔记:
定义一个百度函数,这个函数可以将你所要爬虫的贴吧网页保存到本地。
函数三个参数:
url,begin_page,end_pageurl:贴吧主页urlbegin_page和end_page:你所要爬下来的开始和结束页数i 循环数 从开始页数到结束页数
sName为保存到本地的文件名
string.zfill(i,5)保证文件名为6位数字
sName = string.zfill(i,5) + ‘.html‘#自动填充成六位的文件名 string.zfill(i,5)的意思是以i命名然后填充到5位 不足的部分补0 例如 string.zfill(3,5) 的命名是00003
html为文件后缀
str(i) 将 i 变成字符串 因为i 本来是int型
然后将m写入f 这个文件,m内容就是urllib2用urlopen打开你所要爬下来的网页,当然是html格式...
写入 关闭这一个, 然后写下一个网页直到 你所要结束的页数。
bdurl = str(raw_input(u‘请输入贴吧的地址,去掉pn=后面的数字:\n‘))
begin_page = int(raw_input(u‘请输入开始的页数:\n‘))
end_page = int(raw_input(u‘请输入终点的页数:\n‘))
这三行代码就是在运行时要你自己输入的东西 ..
最后就是调用啦~附个图
我是用pycharm来运行的。
时间: 2024-10-27 13:08:03