1.URL地址分析
选取的一个百度贴吧帖子的网址是http://tieba.baidu.com/p/4739169817,各位可以点击进去查看一下。
如果点击只看楼主或者翻页,则会产生两个参数http://tieba.baidu.com/p/4739169817?pn=2或http://tieba.baidu.com/p/4739169817?see_lz=1,分析一下该网址如下:
2.页面爬取
python2.7版本,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| #coding=utf-8 __author__ = 'xuzhengxi' import sys sys.path.append("/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/") import urllib2 import string 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)
|
注意: utf-8编码声明,否则容易出现乱码问题。此demo仅使用一些简单的页面爬取,对于有ajax之类的异步加载技术的网站不适用,需要一些成熟的爬虫框架。