介绍运行环境
运行方法
数据爬取(jd.comment.py)
这篇文章给大家分享的是有关python如何爬取京东指定商品评论的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
爬取京东商城中指定商品下的用户评论,对数据预处理后基于SnowNLP的情绪模块对文本进行情感分析。
运行环境
- <李>
Mac OS X
李> <李>Python3.7让
李> <李> Pycharm
运行方法
数据爬取(jd.comment.py)
- <李>
启动jd_comment.py,建议修改jd_comment.py中变量用户代理为自己浏览器用户代理
李> <李>输入京东商品完整URL
李> <李>得到京东评论词云,存放于jd_ciyun.jpg(词云轮廓形状存放于jdicon.jpg)
李> <李>得到京东评论数据,存放于jd_comment.csv
import 操作系统 import 时间 import json import 随机 import csv import 再保险 import jieba import 请求 import numpy  as np 得到PIL import 形象 import matplotlib.pyplot  as plt 得到wordcloud import  WordCloud #,词云形状图片 时间=WC_MASK_IMG & # 39; jdicon.jpg& # 39; #,评论数据保存文件 时间=COMMENT_FILE_PATH & # 39; jd_comment.txt& # 39; #,词云字体 时间=WC_FONT_PATH & # 39;/图书馆/字体/Songti.ttc& # 39; def spider_comment(页面=0,,关键=0): ,,,,,, ,,,爬取京东指定页的评价数据 ,,,:param 页面:,爬取第几,默认值为0 ,,,,,, ,,,url =, & # 39; https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv4646& productId=& # 39;, +, key +, & # 39; & # 39; \ ,,,,,,,,,& # 39;,得分=0,sortType=5,页=% s&页大?10,isShadowSku=0,褶皱=1 & # 39;%,页面 ,,,kv =,{& # 39;用户代理# 39;:,& # 39;Mozilla/5.0 & # 39;,, & # 39;推荐人# 39;:,& # 39;https://item.jd.com/& # 39; +, key +, & # 39; . html # 39;} #原本关键不输入值,默认为《三体》 ,,,试一试: ,,,,,,,r =, requests.get (url,头=kv) ,,,,,,,r.raise_for_status () ,,,除了: ,,,,,,,印刷(& # 39;爬取失败& # 39;) ,,,#,截取json数据字符串 ,,,r_json_str =, r.text(26日:2) ,,,#,字符串转json对象 ,,,r_json_obj =, json.loads (r_json_str) ,,,#,获取评价列表数据 ,,,r_json_comments =, r_json_obj[& # 39;评论# 39;】 ,,,#,遍历评论对象列表 ,,,for r_json_comment 拷贝r_json_comments: ,,,,,,,#,以追加模式换行写入每条评价 ,,,,,,,with 开放(COMMENT_FILE_PATH, & # 39; a + & # 39;), as 文件: ,,,,,,,,,,,file.write (r_json_comment[& # 39;内容# 39;],+,& # 39;\ n # 39;) ,,,,,,,#,打印评论对象中的评论内容 ,,,,,,,印刷(r_json_comment[& # 39;内容# 39;]) def batch_spider_comment (): ,,,,,, ,,,,,,,批量爬取某东评价 ,,,,,,,,,, ,,,#,写入数据前先清空之前的数据 ,,,if os.path.exists (COMMENT_FILE_PATH): ,,,,,,,os.remove (COMMENT_FILE_PATH) ,,,key =,输入(“Please  enter ,地址:“) ,,,key =, re.sub (“\ D",““,键) ,,,#通过范围来设定爬取的页面数 ,,,for 小姐:拷贝范围(10): ,,,,,,,spider_comment(我键) ,,,,,,,#,模拟用户浏览,设置一个爬虫间隔,防止ip被封 ,,,,,,,time . sleep (random.random (), *, 5) def cut_word (): ,,,,,, ,,,对数据分词 ,,,::返回,分词后的数据 ,,,,,, ,,,with 开放(COMMENT_FILE_PATH), as 文件: ,,,,,,,comment_txt =,以() ,,,,,,,wordlist =, jieba.cut (comment_txt, cut_all=False) #精确模式 ,,,,,,,wl =,,,, . join(单词表) ,,,,,,,印刷(王) ,,,,,,,return 王 def create_word_cloud (): ,,,,,,44144127306 ,,,生成词云 ,,,:返回: ,,,,,, ,,,#,设置词云形状图片 ,,,wc_mask =, np.array (Image.open (WC_MASK_IMG)) null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null nullpython如何爬取京东指定商品评论