利用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复制到结果栏中回车就行。




  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值