python爬虫实战(2)--爬取某博热搜数据

1. 准备工作

使用python语言可以快速实现,调用BeautifulSoup包里面的方法
安装BeautifulSoup

pip install BeautifulSoup

完成以后引入项目

2. 开发

定义url

    url = 'https://s.微博.com/top/summary?cate=realtimehot'

定义请求头,微博请求数据需要cookie,设置自己的cookie

header = {
    'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Mobile Safari/537.36',
    'Host': 's.weibo.com',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language': 'zh-CN,zh-Hans;q=0.9',
    'Accept-Encoding': 'gzip, deflate, br',
    # 定期更换Cookie
    'Cookie': '你的cookie'
}

cookie查看
在这里插入图片描述
分析数据结构,找到标签值

    items = soup.find('section', {'class': 'list'})

爬取的数据都是列表,定义好需要的列表list,循环标签值

 href_list = []
    text_list = []
    order_list = []
    type_list = []
    view_count_list = []
    for li in items.find_all('li'):
        # 链接地址
        order = li.find('strong')
        if order == None:
            continue
        href = li.find('a').get('href')
        href_list.append('https://s.weibo.com' + href)
        la = li.find('i')
        order_list.append(order.get_text())
        text = li.find('span').get_text()
        view_count = li.find('span').find('em').get_text()
        view_count_list.append(view_count)
        text1 = text.replace(view_count, '')
        text_list.append(text1)
        if la:
            type = trans_icon((la.get('class')[1]))
        else:
            type = trans_icon('')
        type_list.append(type)

中间有个热搜类别转换方法

def trans_icon(v_str):
    """转换热搜类别"""
    if v_str == 'icon_new':
        return '新'
    elif v_str == 'icon_hot':
        return '热'
    elif v_str == 'icon_boil':
        return '沸'
    elif v_str == 'icon_recommend':
        return '商'
    else:
        return '未知'

最后把抓取的数据存到xlsx


    df = pd.DataFrame(data)
    df.to_excel('C:\\Users\\Administrator\\Desktop\\微博热搜榜.xlsx', index=False)  # 保存结果数据

3. 效果

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值