python:爬取贴吧的某个吧的网页信息

#-*-coding:utf-8-*-
import urllib      #负责url编码处理
import urllib2
import sys
import os

if sys.getdefaultencoding() != 'utf-8':
    reload(sys)
    sys.setdefaultencoding('utf-8')
def writeFile(html, filename):
    """
        作用:保存服务器响应文件到本地磁盘文件里
        html: 服务器响应文件
        filename: 本地磁盘文件名
    """
    print "正在存储" + "D://lianxi"


    with open("D://lianxi//"+filename.encode("GBK"), 'w') as f:
        f.write(html)
    print "-" * 20


def tiebaSpider(url, beginPage, endPage):
    """filename
        作用:负责处理url,分配每个url去发送请求
        url:需要处理的第一个url
        beginPage: 爬虫执行的起始页面
        endPage: 爬虫执行的截止页面
    """


    for page in range(beginPage, endPage + 1):
        pn = (page - 1) * 50

        filename = "第" + str(page) + "页.html"
        # 组合为完整的 url,并且pn值每次增加50
        fullurl = url + "&pn=" + str(pn)
        #print fullurl

        # 调用loadPage()发送请求获取HTML页面
        html = loadPage(fullurl, filename)
        # 将获取到的HTML页面写入本地磁盘文件
        writeFile(html, filename)

def loadPage(url, filename):
    '''
        作用:根据url发送请求,获取服务器响应文件
        url:需要爬取的url地址
        filename: 文件名
    '''
    print "正在下载" + filename

    headers = {"User-Agent": "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;"}

    request = urllib2.Request(url, headers = headers)
    response = urllib2.urlopen(request)
    return response.read()

# 模拟 main 函数
if __name__ == "__main__":


        kw  = raw_input("请输入需要爬取的贴吧:")
        # 输入起始页和终止页,str转成int类型
        beginPage = int(raw_input("请输入起始页:"))
        endPage = int(raw_input("请输入终止页:"))

        url = "http://tieba.baidu.com/f?"
        key = urllib.urlencode({"kw" : kw})

        # 组合后的url示例:http://tieba.baidu.com/f?kw=lol
        url = url + key
        tiebaSpider(url, beginPage, endPage)

 运行过程:

        
 

运行结果: 


 打开页面:
 

猜你喜欢

转载自blog.csdn.net/superXZT/article/details/84726491
今日推荐