利用JSon在京东上实现随意商品评论的爬取

爬取JD商品评论
本文介绍了一种使用Python爬取京东商品评论的方法。通过解析JSON数据格式,利用正则表达式提取所需信息,并将结果存储起来。适用于不同编程语言间的对象传递及网络数据传输。
部署运行你感兴趣的模型镜像

首先我们应该理解JSON是什么:

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。json最大的优势就是独立于编程语言, 易于人阅读和编写,同时也易于机器解析和生成。所以,如果我们需要在不同的编程语言之间传递对象,或者需要在网络世界中传输数据,我们都可以将数据序列化为json格式。当将其序列化为json格式以后,可以方便地被所有编程语言读取与解析,也可以方便地被存储在磁盘中或者用于网络传输。正因为有这些优点,json在实际中使用非常广泛。

JSON构建于两种结构: 
1.“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。 
2.值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

假设你已经大概的理解JSON到底是什么,那我们就开始实现我们想要的功能。

先来一个非常简单的一个包含JSON模块的python小程序:当我们写程序之前第一步就是先找到这个商品评论的JSON库,每一个商品的json库的名字都不一样,但是它的内容的格式一样,所以我们只要写一个万能的格式就可以了。其中需要注意的是你想要的信息的类名,一定要把。类名写对了,程序就对了一大半了。

完整的程序如下:

# -*- coding:utf-8 -*-
import urllib
import re
import json

def getHtml(url):
    page=urllib.urlopen(url)
    html=page.read().decode("gbk")
    return html
def getItems(html):
    reg=re.compile("fetchJSON_comment98vv766\(")
    data=reg.sub('',html)
    reg1=re.compile("\);")
    data=reg1.sub('',data)
    a=json.loads(data)
    for k in a["comments"]: 
        print k["content"] #这就是需要的评论的内容
        print k["referenceName"] #名称
print k["referenceTime"] #时间 f1=open('v.txt','a+') f1.write(k["content"].encode('UTF-8')) f1.write(k["referenceName"].encode('UTF-8')) f1.write(k["referenceTime"].encode('UTF-8')) f1.close()a=raw_input("请输入网址")a=a.replace('https://item.jd.com/','')a=a.replace('.html','')for i in range(0,10): url='https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv766&productId='+a+'&score=0&sortType=5&page='+str(i)+'&pageSize=10&isShadowSku=0&fold=1' html=getHtml(url) getItems(html)
当我们跑程序的时候,最后把你想爬的商品的url复制到结果栏中回车就行。




您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

在HTML购物网站中,商品评论功能通常需要借助后端语言(如PHP、Java等)和数据库来实现。下面是一个基于HTML、PHP和MySQL的商品评论代码示例供参考: 1. 在数据库中建立商品评论表 ```sql CREATE TABLE `comment` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '评论ID', `product_id` int(11) NOT NULL COMMENT '商品ID', `user_name` varchar(50) NOT NULL COMMENT '用户名', `content` varchar(500) NOT NULL COMMENT '评论内容', `create_time` datetime NOT NULL COMMENT '评论时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ``` 2. 在商品详情页面中添加评论框和提交按钮 ```html <form action="add_comment.php" method="POST"> <input type="hidden" name="product_id" value="1"> <input type="text" name="user_name" placeholder="请输入用户名"><br> <textarea name="content" placeholder="请输入评论内容"></textarea><br> <input type="submit" value="提交评论"> </form> ``` 3. 在后端PHP中编写相应的代码实现 ```php <?php // 连接数据库 $servername = "localhost"; $username = "root"; $password = "password"; $dbname = "myDB"; $conn = mysqli_connect($servername, $username, $password, $dbname); if (!$conn) { die("连接失败: " . mysqli_connect_error()); } // 获取表单数据 $product_id = $_POST['product_id']; $user_name = $_POST['user_name']; $content = $_POST['content']; $create_time = date('Y-m-d H:i:s'); // 插入评论数据到数据库 $sql = "INSERT INTO comment (product_id, user_name, content, create_time) VALUES ('$product_id', '$user_name', '$content', '$create_time')"; if (mysqli_query($conn, $sql)) { echo "评论成功"; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); } // 关闭数据库连接 mysqli_close($conn); ?> ``` 4. 在商品详情页面中展示评论列表 ```html <?php // 获取商品评论数据 $sql = "SELECT * FROM comment WHERE product_id=1"; $result = mysqli_query($conn, $sql); // 遍历评论数据并展示到页面上 while($row = mysqli_fetch_assoc($result)) { echo '<div>'; echo '<p>用户名:' . $row['user_name'] . '</p>'; echo '<p>评论内容:' . $row['content'] . '</p>'; echo '<p>评论时间:' . $row['create_time'] . '</p>'; echo '</div>'; } // 释放查询结果内存 mysqli_free_result($result); ?> ``` 以上代码示例是一个简单的实现商品评论功能的示例,具体的实现细节还需要根据具体情况而定。希望这些信息能对您有所帮助。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值