IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    简单python爬虫程序(爬取百度贴吧帖子)

    hyperxu发表于 2017-05-20 14:56:31
    love 0

    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,分析一下该网址如下:

    • http://tieba.baidu.com/p/4739169817?see_lz=1 这是网址
    • see_lz 该参数表示是否只看楼主发的帖子,1表示true
    • pn 该参数表示表示第几页

    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之类的异步加载技术的网站不适用,需要一些成熟的爬虫框架。



沪ICP备19023445号-2号
友情链接