python如何爬取京东指定商品评论

  介绍

这篇文章给大家分享的是有关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   null

python如何爬取京东指定商品评论