爬取京东评论—超级暴力简单版

一.不需要h5st解密,js逆向什么东西的,直接简单暴力爬,简单到怀疑人生!!!


自己在刚开始爬取时候,处处受阻,h5st加密算法更新频率也快,自己也没有学过js逆向,解密等,就停滞了一段时间,后来经过查看帖子和同门的讨论,测试,发现一个两年前的帖子中有个京东商品评论js代码格式,直接能在浏览器上打开并显示内容,然后就尝试将“productId”换成其他商品的,并能够成功显示出内容,评论内容也是最新的,惊喜中带着疑惑,为什么“https://club.jd.com/comment/productPageComments.action?&productId={url_id}&score={i}&sortType=5&page={j}&pageSize=10&isShadowSku=0&fold=1”
可以直接用来爬取,那么加密的意义又在哪?到现在还是很疑惑


二.url解释和代码

其中“productId”为商品的id,如图:
“score”的0,1,2分别代表好,中,差评,
“page”即页数

代码中的:“urls_id”可以增添多个商品id,通过for循环,可以一下爬取多个商品的评论

通过简单的三层for循环就能对多个商品的好中差评进行多页爬取了!

import requests
import csv
import os


file_path = 'comment_data.csv'
file_exists = os.path.exists(file_path)
with open(file_path, mode='a', encoding='utf-8', newline='') as f:
    csv_writer = csv.DictWriter(f, fieldnames=['评论', '分数'])
    if not file_exists or os.path.getsize(file_path) == 0:
        csv_writer.writeheader()
    urls_id=['100077097741']
    for url_id in urls_id:
        for i in range(1,3):
            for j in range(1,100):
                url = f'https://club.jd.com/comment/productPageComments.action?&productId={url_id}&score={i}&sortType=5&page={j}&pageSize=10&isShadowSku=0&fold=1'
                res = requests.get(url)
                comments = res.json()['comments']
                for k in comments:
                    data = {
                        '评论': k['content'],
                        '分数': k['score']
                    }
                    print(data)
                    csv_writer.writerow(data)

 

三.利用Drissionpage爬取

在这个方法写出来之前,我是利用了drissionpage自动化来进行爬取的,也成功爬取了出去,但代码的简洁程度和爬取速度远远不如简单暴力爬取法,有感兴趣的小伙伴可以评论留言,大家一起学习讨论, 另外就是开头的疑问,有没有大佬解答一下,牢弟也研究了一阵,还没有解决

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值