Python爬虫----百度贴吧

URL分析

百度贴吧网页地址:
第1页:https://tieba.baidu.com/f?kw=lol&ie=utf-8&pn=0
第2页:https://tieba.baidu.com/f?kw=lol&ie=utf-8&pn=50
第3页:https://tieba.baidu.com/f?kw=lol&ie=utf-8&pn=100

根据url可看出,每1页的url只是修改了pn值,其余部分并未修改。而且,每增加1页,pn的值增加50。

代码

Python版本:2.7.10

#coding=utf-8
import urllib2
#
"""
    tiebaSpider(url,beginpage,endpage):
            负责处理url,分配每个url去发送请求
                url:需要处理的第一个url
                beginPage: 爬虫执行的起始页面
                endPage: 爬虫执行的截止页面
"""
#
def tiebaSpider(url,beginpage,endpage):
    for page in range(beginpage,endpage+1):
        # 根据url分析,找出计算公式
        pn=(page-1)*50
        # 输出文件名
        filename = str(page) + "page.html"
        # 每1页对应的的url
        fullurl = url + "&pn="+ str(pn)
        print page,"页的网址为:",fullurl

        # 调用loadPage方法,开始爬取数据
        html = loadPage(fullurl,filename)
        # 将爬取到的html页面进行存储
        writeFile(html,filename)

# 爬取数据方法
def loadPage(url,filename):
    print "正在下载:"+filename
    # 设置User-Agent头,伪装成一个被公认的浏览器
    header = {"User-Agent": "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0;"}
    request = urllib2.Request(url,headers=header)
    response = urllib2.urlopen(request)
    return response.read()

# 存储数据方法
def writeFile(html,filename):
    print "正在存储:"+filename
    # 存储路径 + 存储文件名
    fname = "E:/pythonTest/"+filename
    # 开始存储
    with open(fname,"w") as f:
        f.write(html)
    print "------下载存储完成!!!------"

if __name__ == '__main__':
    # headurl = "https://tieba.baidu.com/f?kw=lol"
    headurl = raw_input("请输入需要爬取的贴吧:")
    beginPage = int(raw_input("请输入起始页:"))
    endPage = int(raw_input("请输入终止页:"))
    tiebaSpider(headurl,beginPage,endPage)

运行

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值