爬虫爬取某游戏评论

本次的目标网站为:
https://www.taptap.com/app/192976/review
首先进去网站可以看到如下界面
在这里插入图片描述
进去网站后找到所有评论所在位置你然后点击,点击"F12"以后点击" Netword "以后刷新可以得到如下界面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如上图,不断的将评论往下拉可以看到右边会新加一些请求,就会发现该网站为动态网站,点开这些请求以后,会发现我们所与需要的数据就在 这里:
观察这些网址的参数

下面为第一个网址的参数
app_id: 192976
limit: 10
mainRequest: true
from: 10
X-UA: V=1&PN=WebApp&LANG=zh_CN&VN_CODE=4&VN=0.1.0&LOC=CN&PLT=PC&DS=Android&UID=1c6b57c4-54d9-47ab-bf42-511ffc7e09c3&DT=PC

这下面为第二个网址的参数

app_id: 192976
from: 20
limit: 10
mainRequest: true
X-UA: V=1&PN=WebApp&LANG=zh_CN&VN_CODE=4&VN=0.1.0&LOC=CN&PLT=PC&DS=Android&UID=1c6b57c4-54d9-47ab-bf42-511ffc7e09c3&DT=PC

观察发现这些参数中只有一个参数是在变化的,就是" from "这个参数,没次增加10。
最终就有了具体思路
开始写代码

    for i in range(1,200):
        a=i*10
        url=f"https://www.taptap.com/webapiv2/review/v2/by-app?app_id=192976&from={a}&limit=10&mainRequest=true&X-UA=V%3D1%26PN%3DWebApp%26LANG%3Dzh_CN%26VN_CODE%3D4%26VN%3D0.1.0%26LOC%3DCN%26PLT%3DPC%26DS%3DAndroid%26UID%3D1c6b57c4-54d9-47ab-bf42-511ffc7e09c3%26DT%3DPC"
        a=1
        resp=requests.get(url).json()

发现都是可以得到,最终就是解析数据最后存储

最终全部代码如下

import requests
import time
import xlwt
def main() :         #主函数
    for i in range(1,200):
        a=i*10
        url=f"https://www.taptap.com/webapiv2/review/v2/by-app?app_id=192976&from={a}&limit=10&mainRequest=true&X-UA=V%3D1%26PN%3DWebApp%26LANG%3Dzh_CN%26VN_CODE%3D4%26VN%3D0.1.0%26LOC%3DCN%26PLT%3DPC%26DS%3DAndroid%26UID%3D1c6b57c4-54d9-47ab-bf42-511ffc7e09c3%26DT%3DPC"
        a=1
        fun(url,i)
lis=[]            #存储数据
def fun(url,i) :          #请求网页
    print(i)
    resp=requests.get(url).json()
    time.sleep(2)
    fun1(resp)
    #print(resp["data"]["list"])
def fun1(resp) :          #解析数据
    #print(resp)
    for i in resp["data"]["list"]:
        lis1=[]       #存储单条数据
        lis1.append(i["moment"]["author"]["user"]["name"])           #获取名字
        lis1.append(i["moment"]["author"]["user"]["id"])
        lis1.append(i["moment"]["extended_entities"]["reviews"][0]["device"])    #获取手机型号
        lis1.append(i["moment"]["author"]["user"]["avatar"])          #头像链接
        lis1.append(i["moment"]["extended_entities"]["reviews"][0]["contents"]["text"])    #获取评论
        print(lis1)
        lis.append(lis1)
        #fun2(lis)
def fun2(lis) :          #保存数据
    print("开始存储!")
    book = xlwt.Workbook(encoding="utf-8", style_compression=0)  # 创建"workbook"对象
    sheet = book.add_sheet("游戏数据", cell_overwrite_ok=True)  # 创建工作表
    col = ["用户网名","用户ID", "用户手机型号", "头像链接", "评论"]
    for i in range(0, 4):
        sheet.write(0, i, col[i])  # 列名
    for i in range(1, len(lis)):
        print('已经存储', i - 1, '行数据')
        for j in range(0, len(lis[i])):
            sheet.write(i, j, lis[i - 1][j])
            book.save("游戏数据2.xls")
if __name__ == '__main__':
    main()
    fun2(lis)

最终得到全部数据:
部分数据如下图
在这里插入图片描述
感谢观看!

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值