Python学习入门
今天学习了Python网络爬虫的知识,试着写了一个简单的爬虫程序,用于爬取百度贴吧的网页并保存为HTML文件。
实现该功能的思路:
通过对贴吧URL的观察,可以看出贴吧中的帖子的URL有这样一个特征,以“http://tieba.baidu.com/p/4463392102?pn=3”这个URL为例,它由“http://tieba.baidu.com/p/4463392102?”和“pn=3”组成,其中,前半部分为帖子第一页的URL,而“pn=”则决定了第几页(比如pn=3为第三页)。通过这样的分析我们大致
可以获得这样的思路:
1.通过用户输入贴子id确认贴吧地址
2.通过循环实现对要保存文件的命名,下载进度显示等功能的实现
3.将解析到的HTML文档写入我们之前创建的文件之中
4.关闭文件,程序结束
# -*- coding: utf-8 -*-
import urllib, string, urllib.request
# 定义贴吧爬虫函数
def tieba(postId):
url = "http://tieba.baidu.com/p/" + postId
start = 1
end = 2
for i in range(start,end+1):
fName= "files/"+str(i)+'.html'
print('正在下载第'+str(i)+'个文件,并将其转存为'+fName)
file = open(fName,'w+')
req_url = url + "?pn=" + str(i)
print(req_url);
# 基于resquest生成response对象
response=urllib.request.urlopen(req_url)
# bytes to string
data = str(response.read())
# 写入文件
file.write(data)
# 关闭文件
file.close()
# 获取贴子ID
post_id=str(input('请输入贴子的ID\n'))
#调用函数
tieba(post_id)