作者:国服帅座 经济学在读硕士
公众号:统计之家
无论是爬取静态网页,还是利用高德地图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条评论。
往期精彩传送
本文由国服帅座 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。
以上所述就是小编给大家介绍的《Scrapy爬取京东某书评论》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
XForms Essentials
Micah Dubinko / O'Reilly Media, Inc. / 2003-08-27 / USD 29.95
The use of forms on the Web is so commonplace that most user interactions involve some type of form. XForms - a combination of XML and forms - offers a powerful alternative to HTML-based forms. By pro......一起来看看 《XForms Essentials》 这本书的介绍吧!