使用Python爬取某网某电影视评论

2022-02-09 723阅读

文章最后更新时间:2022年02月11日已超过777天没有更新。

前言

爬取时光网里的长津湖之水门桥的影视评论,时光网采用的是 XHR技术,先加载骨架在加载详细内容,而加载详细内容的过程,就用到了 XHR 技术。

XHR 全称 XMLHttpRequest ,是浏览器内置的对象。浏览器想要在不刷新网页前提下加载、更新局部内容时,必须通过 XHR 向存放数据的服务器发送请求。

爬取

首先某网站的网站内容一般可以采用 CSS选择器来进行爬取,由于时光网采用的是 XHR技术,所以我们打开NetWork 面板,可以看到

1644343667.png

如上图所示,请求的URL是 API 请求的方法是 GET,接下来就是查看请求 URL 的的参数,可以把 API 链接拆分下来,也可以点击NetWork 的 Payload 按钮进行查询字符串查询操作,如下图:

1644344240.png

然后点击 预览按钮 获取 json 格式下对应的代码皆可如下图:

1644344744.png

到这里基本信息都掌握了,恭喜你也可以写出以下代码了:

import requests
import time
from datetime import datetime

# 头部和请求
headers = {
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36 Edg/98.0.1108.43',
  'Referer': 'http://movie.mtime.com/'
}

# 引入 session 对象
session = requests.Session()
# 设置 headers 为全局headers
session.headers.update(headers)

# 使用for循环爬取26页的评论
for num in range(1,27):
  params = {
    'tt':'{}'.format(int(time.time() * 1000)), # 
    'movieId':'271015', # id
    'pageIndex': '{}'.format(num), # 评论页数
    'pageSize': '20', # 每页评论条数
    'orderType': '2' # 类型 1 为热门评论,2 为最新评论
}
  # 影视评论的api
  res = session.get('http://front-gateway.mtime.com/library/movie/longCommentList.api',params = params)
  comments = res.json()['data']['list'] # api 参数
  
  for comment in comments: # 将参数循环
    print('用户:', comment['nickname'])
    print('评论:', comment['content'])
    # 本身时间戳为 Unix 引入 datetime 模块 的 fromtimestamp() 方法进行转换
    print('时间:', datetime.fromtimestamp(comment['commentTime']))
    time.sleep(1) # 防止被屏蔽,设置1秒爬取一条评论


我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=3h1mgxxl8a2o0