Scrapy爬取京东某书评论

浏览: 1977

作者:国服帅座  经济学在读硕士

公众号:统计之家

无论是爬取静态网页,还是利用高德地图API获得数据,本文作者都偏好使用requests模块。在本文中,本人爬取京东书评,运用的是Scrapy框架。

观察页面结构

首先,在京东上搜索某书,以丘祐玮老师的《数据科学:R语言实现》为例,该书评价页面仅有2页,共计14条评论。

其次,在Chrome中右击“检查”,点击“Network“下的”JS”,寻找到“productPageComments”。

然后,双击该链接,观察页面发现,这是JSON字符串,在转化为Python字典前,需要先把大括号外面的多余字符串去除。

爬取京东书评

在命令提示符中输入以下代码,先创建一个目录(jingdong),然后进入该目录,在该目录的spiders目录中生成爬虫文件(pinglun.py)。

打开pinglun.py文件,输入以下代码:

# -*- coding: utf-8 -*- 
import scrapy
import json

class PinglunSpider(scrapy.Spider):
    name = 'pinglun'
    allowed_domains = ['web']
    start_urls = ['https://sclub.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv27
&productId=12088321&score=0&sortType=5&page={}&pageSize=10&isShadowSku=0&fold=1'
.format(i) for i in range(0,2)]
# 上步在page参数位置使用for循环,取值与评论页数有关

def
 parse(self, response):

        jd = json.loads(response.text.lstrip('fetchJSON_comment98vv27(').rstrip(');'))
        pinglun = jd['comments']  # 上步将JSON字符串转化为Python字典格式
for i in pinglun:
            results = {}
            results['content'] = i['content']       # 评论内容
results['time']    = i['creationTime']  # 评论时间
print (results)

接着,在命令提示符中输入以下命令:

获得结果如下,合计14条评论。

往期精彩传送

爬虫三步走——以R语言爬取经纬度为例

Python调用高德地图API爬取经纬度

Python调用百度地图API爬取经纬度

听说过高德版本的天气预报么

Python双Y轴可视化

这是一份【洗浴推拿指南】,敬请查收!

您是否知道,回家的路究竟有多长?

大年初六中午,全国各区县哪里最冷?

推荐 1
本文由 Economicoder 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册