使用Python爬取某网某电影视评论
前言
爬取时光网里的长津湖之水门桥的影视评论,时光网采用的是 XHR
技术,先加载骨架在加载详细内容,而加载详细内容的过程,就用到了 XHR 技术。
XHR
全称 XMLHttpRequest
,是浏览器内置的对象。浏览器想要在不刷新网页前提下加载、更新局部内容时,必须通过 XHR 向存放数据的服务器发送请求。
爬取
首先某网站的网站内容一般可以采用 CSS
选择器来进行爬取,由于时光网采用的是 XHR
技术,所以我们打开NetWork 面板,可以看到
如上图所示,请求的URL是 API 请求的方法是 GET,接下来就是查看请求 URL 的的参数,可以把 API 链接拆分下来,也可以点击NetWork 的 Payload 按钮进行查询字符串查询操作,如下图:
然后点击 预览按钮 获取 json 格式下对应的代码皆可如下图:
到这里基本信息都掌握了,恭喜你也可以写出以下代码了:
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
还没有评论,来说两句吧...