【爬虫实战】评论爬取及词频统计详解

前言

本项目来自Baidu AI Studio相关python课程。

aqy评论爬取

请求数据

首先分析想要爬取的页面评论。
在这里插入图片描述
在每次点击获取评论时,都会有一个get_comments的请求,请求中的url就是我们所需要的请求链接。
https://sns-comment.iqiyi.com/v3/comment/get_comments.action?agent_type=118&agent_version=9.11.5&authcookie=null&business_type=17&content_id=15472234400&hot_size=0&page=&page_size=20&types=time&last_id=241192681621
该页面请求评论的机制是,通过获取last_id,最后一个显示的评论,来获取之后的评论,只要不断更改last_id不断请求,就能拉取所有评论。

思路就有了,不断请求获取评论的URL,获取评论。
这里使用的是Session建立一个会话,不建立其实也没问题。


def getMovieinfo(url):
    '''
    请求爱奇艺评论接口,返回response信息
    参数  url: 评论的url
    return: response信息
    '''
    session = requests.Session()
    headers = {
   
        "User-Agent": "Mozilla/5.0", #请求来源设置
        "Accept": "application/json",# 客户端能接受的内容
        "Referer": "https://www.iqiyi.com/v_19ryhrmpcc.html#curid=15472234400_2d7e859019eb31bf551d6a90e8daedcf",
        "Origin": "http://m.iqiyi.com", # 指明请求来自于哪个站点
        "Host": "sns-comment.iqiyi.com",#请求web服务器域名地址
        "Connection": "keep-alive", # 保持连接
        "Accapt-Language": "en-Us,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,zh-Tw;q=0.6", # 优先显示的语言
        "Accept-Encoding":"gzip, deflate" # 支持的返回压缩格式
    }
    response = session.get(url, headers=headers)
    if response.status_code == 200: # 响应成功
         return response.text
    return None

思路:输入分析得到的评论获取url,使用getMovieinfo得到json格式的响应,json格式数据转换为字典,可以通过 [‘data’][‘comments’] 标签把评论部分提取出来,content是其中的文字部分。
comments中包含很多条评论信息,每次循环VAL中是一条评论信息,如果这条评论信息中有中文和lastID,那么就是一条有效信息,把cantent部分提取出来,lastID也提取为下一步的请求做准备。

def saveMoviernforoFile(lastId,arr):

    # '''
    # 解析json数据,获取评论
    # 参数lastrd:最后一条评论ID arx:存故文本的1ist
    # return:新的lastrd
    # '''

    url="https://sns-comment.iqiyi.com/v3/comment/get_comments.action?agent_type=118&agent_version=9.11.5&authcookie=null&business_type=17&content_id=15472234400&hot_size=0&page=&page_size=20&types=time&last_id="
    url+=str(lastId)
    responseTxt=getMovieinfo(url
  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值