Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/awolfly9/jd_analysis
京东商城评价信息数据分析。查看示例:http://awolfly9.com/article/jd_comment_analysis
https://github.com/awolfly9/jd_analysis
Last synced: 1 day ago
JSON representation
京东商城评价信息数据分析。查看示例:http://awolfly9.com/article/jd_comment_analysis
- Host: GitHub
- URL: https://github.com/awolfly9/jd_analysis
- Owner: awolfly9
- License: lgpl-3.0
- Created: 2017-05-10T01:15:05.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-05-18T07:59:41.000Z (over 7 years ago)
- Last Synced: 2024-11-07T10:42:27.972Z (7 days ago)
- Language: Python
- Size: 6.4 MB
- Stars: 253
- Watchers: 20
- Forks: 86
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 京东商城商品评价数据分析
附上使用地址
体验地址:
体验示例地址:## 项目来源
互联网购物现在已经是非常普遍的购物方式,在互联网上购买商品并且使用之后,很多人都会回过头来对自己购买的商品进行一些评价,以此来表达自己对于该商品使用后的看法。商品评价的好坏对于一个商品的重要性显而易见,大部分消费者都以此作为快速评判该商品质量优劣的方式。所以,与此同时,有些商家为了获得好评,还会做一些 "好评优惠" 或者 "返点" 活动来刺激消费者评价商品。
既然商品评价对于消费者选购商品而言至关重要,那么我想试试可以从这些评价信息中获取到怎样的价值,来帮助消费者快速获取到关于该商品的一些重要信息,给他们的购物带来更加可靠地保证?
所以,我认为,一种快速、全面、高提炼度和高对比度的信息获取和展示方式将会非常必要。 于是,我采用分布式快速抓取京东的评价信息,然后使用 pandas 对抓取到的数据进行分析。## 项目依赖
* python 2.7.12
* Django
* django-crontab
* scrapy
* requests
* pymysql
* pandas
* numpy
* matplotlib
* wordcloud
* Markdown2
* chardet
* redis
* redis 数据库
* mysql 数据库安装命令:
```
$ pip install Django django-crontab Scrapy requests pymysql pandas numpy wordcloud Markdown2 redis chardet
```
安装 matplotlib 请参考:[matplotlib github](https://github.com/ehmatthes/pcc/blob/master/chapter_15/README.md#installing-matplotlib)## 克隆使用
将项目克隆到本地```
$ git clone https://github.com/awolfly9/jd_analysis.git
```进入工程目录
```
$ cd jd_analysis
```
进入mysql命令界面```
$ mysql -u root -p
```创建 Django 使用的数据库
```
$ create database jd_analysis default character set utf8;
```修改 Django 配置
```
$ vim jd_analysis/settings.py
----------
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'jd_analysis',
'USER': 'root',
'PASSWORD': '123456',
'HOST': '',
'PORT': '',
}
}
```修改配置文件中连接数据库配置
```
$ vim config.py
----------
# local
database_config = {
'host': 'localhost',
'port': 3306,
'user': 'root',
'password': '123456',
'charset': 'utf8',
}
```修改 redis 的连接用户名和密码
```
$ vim config.py
----------
redis_pass = ''
redis_host = 'localhost'
redis_part = '6379'
redis_db = 10
```部分设置参数说明:
| param | Description | 默认值 |
| ----| ---- | ---- |
| is_distributed | 是否分布式抓取 | False |
| is_proxy | 是否使用代理 | False |
| proxy_address | 代理地址 | |
| email_type | 使用哪个邮箱发送邮件 | gmail |
| self_email | 邮箱地址 | 填写自己的邮箱地址 |
| self_password | 邮箱密码 | 填写自己的邮箱密码 |生成 Django 数据库
```
$ python manage.py makemigrations
$ python manage.py migrate
```运行 Django 服务器
```
$ python manage.py runserver
```在浏览器中访问 进行测试
## 项目说明
完整流程介绍,请见如果在使用过程中有任何问题,欢迎提 Issues,也可联系我的微信进入微信群和大伙一起学习。(在我博客中可以找到我的微信)
## 常见问题
#### mysql 版本过低
在创建表的时候可能会由于数据库版本过低创建失败,解决方式请参考:[stackoverflow](http://stackoverflow.com/questions/23054394/mysql-error-there-can-be-only-one-timestamp-column-with-current-timestamp-in-de)#### win 用户出现 文件名、目录名或卷标语法不正确
python subprocess 的路径问题。解决方法是更改 jd/views 中 runspider 方法。```
cmd = 'python manage.py real_time_analysis -a name={name} -a guid={guid} ' \
'-a product_id={product_id} -a url={url};'. \
format(url = str(url), name = name, dir = settings.BASE_DIR, guid = data.get('guid'),
product_id = product_id)
subprocess.Popen(cmd, shell = True, cwd=settings.BASE_DIR)
```