• [Python] 记录一个简单百度贴吧爬虫程序


    其实是转载,原地址是http://blog.csdn.net/wxg694175346/article/details/8927832,周末在看这几篇关于爬虫程序的文章,在此感谢作者!

    把这个程序贴过来,就是

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

    不得不说,这个爬虫程序相当相当初级,通过变换有序的URL里的pn的值,来访问该URL并存储,所以不难读懂,相关知识有string的一个方法zfill,用处在于e.g., (12, 3) --> '012' and (-3, 3) --> '-03',还可见如下:

    >>> import string
    >>> string.zfill(2, 9)
    '000000002'
    >>> string.zfill('2', 9)
    '000000002'
    >>> string.zfill('add', 9)
    '000000add'

    另外,这个程序略有问题,就是刚才看了下百度贴吧的URL特点,比如天天向上吧的其中一页面网址http://tieba.baidu.com/f?kw=%CC%EC%CC%EC%CF%F2%C9%CF&tp=0&pn=5,然后实际如果点开第二页,网址其实是http://tieba.baidu.com/f?kw=%CC%EC%CC%EC%CF%F2%C9%CF&tp=0&pn=50,第三页网址是http://tieba.baidu.com/f?kw=%CC%EC%CC%EC%CF%F2%C9%CF&tp=0&pn=100,特点显而易见了。

  • 相关阅读:
    ImageCapOnWeb控件使用说明
    网页摄像头拍照
    js调用ocx控件
    sql中 in 、not in 、exists、not exists 用法和差别
    oracle远程登录解决办法
    oracle导入导出,包括表,表结构,方案,数据库
    字典树
    线段树
    Til the Cows Come Home
    Forgger
  • 原文地址:https://www.cnblogs.com/summer2012/p/3176780.html
Copyright © 2020-2023  润新知