为了分析最近热点电影的观众爱好取向,爬取《镇魂》微博评论数据

爬取《镇魂》微博数据

本文皆在于通过爬虫方式爬取微博镇魂。

  • 编程语言:python2.7
  • 依赖库:requests
  • 系统环境:windows

*本篇文章主要参考自Denise_hzf的博客https://www.cnblogs.com/Denise-hzf/p/7927852.html,感谢。


要爬去的数据来源

最近名为《镇魂》的剧十分火热,于是为了分析其热门的原因,有了这篇文章,主要爬取微博评论的数据。
比较推荐又简单的方法是通过手机网页的get请求来访问,原因就是简单粗暴(不过存在的问题是貌似最多只能访问101页)。
微博提供的接口为

https://m.weibo.cn/api/comments/show?id=微博文章的id&page=要获取评论的页数

从get请求获得的json数据中提取评论信息

由于在原文章https://www.cnblogs.com/Denise-hzf/p/7927852.html中执行

jsondata.get('data')

不能获取到数据(可能是因为微博json的格式不一样了)。通过分析以后发现改为

jsondata.get('data').get('data')

即可获取评论数据


使用正则表达式去除多余的回复信息和@信息

由于微博的评论,不仅仅有评论,还有回复,所以爬取以后难免有很多“回复@XXXX:DDDD”类似的信息和@信息,可以用正则表达式去掉

import re
dr = re.compile(r'<[^>]+>',re.S)
drr = re.compile(r'@.*:(.*?)',re.S)
drrr = re.compile(r'@.+?\s',re.S)

comment = dr.sub('',comment)#删除多余的信息
comment = drr.sub('',comment)#删除多余的信息
comment = drrr.sub('',comment)#删除多余的信息

完整代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#参考自Denise_hzf的博客https://www.cnblogs.com/Denise-hzf/p/7927852.html
import sys 
reload(sys) 
sys.setdefaultencoding('utf-8') 
import requests
import re
import time
import random


def readfromtxt(filename):
    file = open(filename, "r")
    text = file.read()
    file.close()
    return text

def writeintxt(dict,filename):
    output = open(filename, 'a+')
    for d, list in dict.items():
        comment_str = ""
        for l in list:
            comment_s
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值