基于Requests和Ajax分析法的新浪微博关键词采集

1 项目介绍

本项目介绍使用requests模块和Ajax分析法采集微博关键词的方法。
本项目仅以“杨幂”、郑爽 、“赵丽颖”这三个关键词挖掘举例说明,如果有挖掘微博其他关键词的需求,可以更换关键词进行采集。

目标:
- 搜索关键词,如#赵丽颖#,采集底下的微博
- 采集微博用户的性别、地点、院校、标签、行业、公司、简介等信息
- 采集关键词的搜索结果微博内容(以电影举例),可分析电影的舆情评价、观影人群画像制作等

2 技术要点

  • 文本循环

  • Ajax点击

3 实现步骤

3.1 搜索微博内容爬取


import requests


def get_hot_info(kw, page):
    """
    获取热搜文章信息
    :param kw: 搜索关键字
    :return: 搜索的文章
    """
    # 使用在线URL解码器进行解码, 如下:
    #       https://m.weibo.cn/api/container/getIndex?containerid=100103type%3D1%26q%3D%E4%BA%92%E8%81%94%E7%BD%91&page_type=searchall
    # 微博的url基本地址
    url = "https://m.weibo.cn/api/container/getIndex"
    # url访问需要添加的参数
    params = {
   
        'containerid': '100103type=1&q=%s' % (kw),
        'page': page
    }

    # 获取页面内容,并通过ijson解析返回一个字典;
    hot_infos = requests.get(url, params).json()

    # 提取需要的微博热搜正文内容
    hot_cards = hot_infos['data']['cards']
    infos = []
    for card in hot_cards:
        for text in card['card_group']:
            if text.get('mblog'):
                infos.append(text['mblog']['text'])
    return infos

3.2 数据清洗

def data_cleaning(text):
    """
    微博数据的清洗
    :param text: 需要清洗的内容, 提取需要的中文
    :return:
    """
    import re
    pattern = '([\u4e00-\u9fa5])'
    cleanData = "".join(re.findall(pattern, text)
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值