使用urllib库爬取百度贴吧

使用urllib库爬取百度贴吧

代码如下

import urllib.request
import urllib.parse

def tieba_spider(url,begin_page,end_page):
    '''
    作用:贴吧爬虫调度器,负责组合处理每个页面的url
    url:贴吧url的前半部分
    begin_page:起始页码
    end_page:结束页
    '''
    for page in range(begin_page,end_page+1):
        print("保存数据,请等待!")
        pn=(page-1)*50
        file_name="第"+str(page)+"页.html"
        full_url=url+"&pn="+str(pn)
        html=load_page(full_url,file_name)
        write_page(html,file_name)

def load_page(url,file_name):
    '''
    作用:根据url发送请求,获取服务器响应文件
    url: 需要爬取的url地址
    '''
    headers={
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36'
    }
    request=urllib.request.Request(url,headers=headers)
    return urllib.request.urlopen(request).read()

def write_page(html,filename):
    '''
    作用:将html内容写入本地文件
    html: 服务器响应文件内容
    '''
    print("正在保存"+filename)
    with open(filename,'w',encoding='utf-8') as file:
        file.write(html.decode('utf-8'))

if __name__=="__main__":
    kw=input("请输入需要爬取的贴吧名:")
    begin_page=int(input("请输入起始页:"))
    end_page=int(input("请输入结束页:"))
    url='http://tieba.baidu.com/f?'
    key=urllib.parse.urlencode({"kw":kw})
    url=url+key
    tieba_spider(url,begin_page,end_page)

结果:运行结果

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想吃奶油蛋糕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值