【安全】爬虫之旅(1)— 百度贴吧低级爬虫

网上有挺多用Python写爬虫的教程和博客,正好我一直想学习python,所以就以写爬虫的方式来熟悉python是个不错的选择!

现在的水平是:基本的语法轮廓懂一点,写程序要查文档;有什么库,库里有什么函数基本不懂,所以仍需百度。

好,现在说回正题,贴一个最近在学python爬虫的链接,写的不错,挺详细,但还是有些地方比较难懂。

http://blog.csdn.net/column/details/why-bug.html

 

看了看他的博客,好像能懂,但毕竟自己还是没有动手写,不要脸的贴一个他博客中的百度贴吧爬虫。

 1 # -*- coding: utf-8 -*-
 2 #---------------------------------------
 3 #   程序:百度贴吧爬虫
 4 #   版本:1.0
 5 #   语言:Python 2.7
 6 #   操作:输入带分页的地址,去掉最后面的数字,设置一下起始页数和终点页数。
 7 #   功能:下载对应页码内的所有页面并存储为html文件。
 8 #---------------------------------------
 9  
10 import string, urllib2
11  
12 #定义百度函数
13 def baidu_tieba(url,begin_page,end_page):   
14     for i in range(begin_page, end_page+1):
15         sName = string.zfill(i,5) + '.html'#自动填充成六位的文件名
16         print '正在下载第' + str(i) + '个网页,并将其存储为' + sName + '......'
17         #文件操作 新建一个html文件
18         f = open(sName,'w+')
19         m = urllib2.urlopen(url + str(i)).read()
20         f.write(m)
21         f.close()
22  
23  
24 #-------- 在这里输入参数 ------------------
25 
26 #这个是学生党吧中某一个帖子的地址
27 #bdurl = 'http://tieba.baidu.com/p/2792970116?pn='
28 #iPostBegin = 1
29 #iPostEnd = 2
30 
31 bdurl = str(raw_input(u'请输入贴吧的地址,去掉pn=后面的数字:\n'))
32 begin_page = int(raw_input(u'请输入开始的页数:\n'))
33 end_page = int(raw_input(u'请输入终点的页数:\n'))
34 #-------- 在这里输入参数 ------------------
35  
36 
37 #调用
38 baidu_tieba(bdurl,begin_page,end_page)

标题里的「百度贴吧低级爬虫」似乎不太恰当,我的意思是这个是最入门级别的爬虫,程序很简单!

首先获得需要访问的URL地址;然后模拟浏览器去访问它,得到返回数据;把数据写进新建文件,并把后缀设定为html,这样双击这个页面就能看到内容了。

虽然程序简单,但还是学到一些之前完全不懂的东西:

1、string.zfill(s,width) 函数;「用0在s前面填充到width宽度,eg:string.zfill(1,5) => 00001」

2、python中建文件、写文件的方法;

3、python中从控制台读取“字符串”、“数字”等的方法;

posted on 2014-01-02 17:14  RAUL_AC  阅读(320)  评论(0编辑  收藏  举报

导航