京东商城评论爬虫
来源:互联网 发布:啤酒配方软件中文版 编辑:程序博客网 时间:2024/04/30 06:35
一、前言
基于评论信息做情感分析模型第一步,收集数据。这里准备抓取京东商城的物品评论,大致可以分为两步。
1、获取商品id
2、获取商品评论
二、实战
接下来的代码都基于scrapy框架编写,请确保已经了解scrapy基础知识。
1、获取商品id
从京东商城首页随意点击进入一个子类,这里选取家电类: https://jiadian.jd.com/,可以看到这个页面已经有商品存在:
很明显,这里的url后面的数字就这个物品id,右键点击查看源代码,查找: item.jd.com:
还不错,一个页面有400多个id,那么就可以直接用正则匹配把源码中的id取出来,代码如下:
class IdentitySpider(scrapy.Spider): name = 'identity' allowed_domains = ['www.jd.com'] start_urls = [] def start_requests(self): for _, url in PD_MAPS.items(): yield Request(url) def parse(self, response): item = JdItem() ids = parse_info(response.body, 'item.jd.com.*?(\\d+)\.html', 1) for i in ids: item['info'] = i.strip() yield item这里抓取完毕后在pipeline中将每一个id写入本地文件中,id抓取完毕。
2、抓取商品评论
随便点开一个商品,查看评论:
很明显,这是一个ajax的动态加载,那么这个接口地址就能找到了:
圈出来的部分很好理解,分别是商品id,评分(好、中、差),页数,直接拼起来就行了,代码如下:
class CommentSpider(scrapy.Spider): name = 'comment' allowed_domains = [] start_urls = ['http://www.jd.com/'] def parse(self, response): path = os.path.join(os.getcwd(), 'data', 'identity.txt') fr = open(path, 'r') urls = [(CM_URL.format(i.strip(), s, 0), s) for i in fr.readlines() for _, s in SC_MAPS.items()] for url, score in urls: yield Request(url, meta={'page': 0, 'score': score}, callback=self.parse_comment) def parse_comment(self, response): item = JdItem() meta = response.meta response_json = demjson.decode(txt=response.text, encoding='utf-8') if meta['page'] < int(response_json['maxPage']) and meta['page'] < 100: meta['page'] += 1 url = u'='.join(response._url.split(u'=')[:-1])+u'='+str(meta['page']) yield Request(url, meta=meta, callback=self.parse_comment) for c in response_json['comments']: content = ''.join(c['content']).strip().replace(u'\n', u'').replace(u'\r', u'').encode('utf-8') item['info'] = '{} {}'.format(meta['score'], content) yield item跟商品id一样共用pipeline,直接写到本地文件中,到这里就大功告成了,评论信息如下:
1 冲着5.99英寸的大屏幕去买,货到了一看怎么比我现在用的华为(5.5英寸)6X还小点,跟商家联系也无法沟通,退货商家说要自己承担邮费,我怎么觉得现在的京东商品和服务态度都越来越差了1 为什么盒子上的型号是Y79A啊1 可惜货到了物流不给看货!!物流也慢2 手机不错,但是发货速度令人发指,11月18日20:25下单,下单时商品注明当日23:00前下单,次日11月19日到货,下单后迟迟不发货,找了三次京东服务,一直到11月20日中午才发货,11月21日早上才到货,京东的口碑还值得信任吗?2 物流是在太慢了,等了4天了2 玩游戏有点闪屏2 有后悔药吗…!分辨率低果然不好,玩王者荣耀都不好看2 和实物不和3 错,挺好的,特别是还买了一张卡特实惠,感觉真的不错,很满意。3 今东太快了!昨天下午下单,今中午就收到,就是号码不和我定的一样啊!
三、其他
详细代码可以在我的github上找到:https://github.com/lpty/crawl_tutorial
注意:本项目代码仅作学术交流使用
阅读全文
0 0
- 京东商城评论爬虫
- 京东商城爬虫程序
- SCrapy爬虫大战京东商城
- HttpClient获取京东商城评论(java实现)
- 爬虫案列:京东商城长裤信息获取
- 手把手教你写电商爬虫-第五课 京东商品评论爬虫 一起来对付反爬虫
- 使用java的爬虫策略获取京东评论
- 爬虫学习笔记_京东商品内容、评论
- python3下几个淘宝、天猫、京东爬虫实例。(价格、销量、评论等)
- python爬虫(7)——获取京东商品评论信息
- 基于selenium和requests的京东商品信息和评论爬虫
- 淘宝评论爬虫python
- 京东商城黑幕
- 垃圾京东商城
- 京东商城售后
- 案例--------京东商城
- 京东商城-刘强东
- scrapy框架爬取京东商城商品的评论
- 我的第一个Linux小程序----进度条
- 随机访问流和合并流
- 单例模式与全局唯一id的思考----c++ ,c ,python 实现
- 缩点
- 最新的Fresco加载Gif图片
- 京东商城评论爬虫
- ffmpeg输出yuv的函数堆栈(h264)
- LOJ6253:「CodePlus 2017 11 月赛」Yazid 的新生舞会 (线段树)
- 最小长度电路板排列问题(回溯)
- An End-to-End Approach to Natural Language Object Retrieval via Context-Aware Deep Reinforcement Lea
- 回溯法
- 《TCP/IP详解 卷1》 笔记: TCP连接的建立与终止
- C语言中的extern关键字
- 顺序队列实现迷宫寻经