运行环境

Python 3.X

寻找评论信息地址

我们打开京东商城,搜索iphone8

iphone8虽然买不起,但是看看也欢迎

我们点击进去查看详情

往下翻,找到商品评价,点击

不仅有评论,而且还有追评,一般追评比较可信(毕竟好不好,用过了才知道!)

我们翻到最后,注意一下网址(url)

然后我们点击第二页

再点击第三页

发现第二页和第三页的网址是一样的,我们可以推测,访问第一页评论的网址也可以和2,3一样

我们再次点击第一页

发现确实如此

对于这种网站要爬取信息是比较难的(评论翻页,但是网址不变)

可能评论信息是异步加载,需要抓包找到位置

我们先查看源代码

复制一段评论信息

在源代码中查找


我们可以查找到本页的评论

我们翻到第二页,查看源代码,发现评论信息还是第一页的信息

想想,网址没变,所以内容不变很正常,但是评论信息明明改变了啊

我们按下F12,进入浏览器的开发者模式(我用的是谷歌浏览器)

我们点击刷新网页,然后如下图红框所示将保存日志信息勾选上


可以看到左下角加载了很多内容

有图片,js,html

根据我今天的经验

我们将All切换到JS,之后点击禁止符号,意思是clear清除原有信息

此时,下面便是一片空白

我们点击评论第二页

发现JS中出现了一个内容

我们点击第三页

发现又多出现一个内容

我们点开第一个出现的

在Preview中发现了评论的内容
那怎么找到这个JS文件的网址呢?

很简单,我们从Preview切换到Headers

将这里的请求网址复制,在浏览器打开

此时,我们可以看到评论信息

我们将之前出现的两个JS文件的Headers里的url都复制到word中

通过对比发现,他们几乎一样,除了page的参数

此时我们一大难题已经解决

找到了异步加载评论的url

并且找到了网址变化规律

导入必要的模块

import re
import pandas as pd
import requests

爬取多页评论

f = open('f:/comment_iphone8.txt','a')
for i in range(0,720):#720response = requests.get('https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv4962&productId=5089225&score=0&sortType=5&page='+str(i)+'&pageSize=10&isShadowSku=0&rid=0&fold=1')response = response.text#print(response)pat = '"content":"(.*?)","'res = re.findall(pat,response)for i in res:i = i.replace('\\n','')#print(i)f.write(i)f.write('\n')
f.close()

当出现问题,打印出现问题的页码,并且开始下一次循环

f = open('f:/comment_iphone8_.txt','a')
for i in range(0,720):#720try:response = requests.get('https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv4962&productId=5089225&score=0&sortType=5&page='+str(i)+'&pageSize=10&isShadowSku=0&rid=0&fold=1')response = response.text#print(response)pat = '"content":"(.*?)","'res = re.findall(pat,response)for i in res:i = i.replace('\\n','')#print(i)f.write(i)f.write('\n')except:print('爬取第'+str(i)+'页出现问题')continue
f.close()

制作评论词云图

导入必要模块

from os import path
from scipy.misc import imread
import matplotlib.pyplot as plt
import jieba
from wordcloud import WordCloud

注意,如果没安装 jieba 和 wordcloud 模块请自行安装

我们以苹果的logo作为背景轮廓(保证白色部分不会出现词云)

图名为iphone8_.jpg,图片要放在默认运行文件夹

f = open('f:/comment_iphone8_.txt','r')
text = f.read()cut_text = ' '.join(jieba.lcut(text))
print(cut_text)
color_mask = imread("iphone8_.jpg")
cloud = WordCloud(font_path='FZMWFont.ttf',  # 字体最好放在与脚本相同的目录下,而且必须设置background_color='white',mask=color_mask,max_words=200,max_font_size=5000
)
word_cloud = cloud.generate(cut_text)
plt.imshow(word_cloud)
plt.axis('off')
plt.show()

下载方正喵呜体字体

字体可以网上下载,也要放在默认运行文件夹

将以上参数调好

运行,生成了词云图

从词云图可以看出,从 手机不错、好看、喜欢、手感等有实际意义的词 可以看出iphone8还是很受欢迎的(不受欢迎怎么会有这么多评论,汗)

Python爬取京东iphone8的异步加载评论相关推荐

  1. Python爬取京东书籍信息(包括书籍评论数、简介等)

    Python爬取京东书籍信息(包括书籍评论数.简介等) 一. 工具 二. 准备爬取的数据 三. 内容简述 四. 页面分析 (一) 寻找目录中商品所在标签 (二) 寻找页面中能爬取到的所有数据 (三) ...

  2. 京东iphone8的异步加载爬取评论

    2019独角兽企业重金招聘Python工程师标准>>> 前言: 最近关注了ID王大伟的博客, 看见他的博文对Python爬虫的爬取觉得很有意思, 于是跟着操作, 以下是操作步骤: 1 ...

  3. 【Python】爬取菜鸟物流管家异步加载XHR订单

    最近需要商家的订单信息,一直Ctrl+c和Ctrl+v感觉就是有点儿不科学,所以就想爬一下试试. 首先得有商家的账号,巧妇难为无米之炊,还是得有账号.因为以前没有爬过,就是各种的尝试. 本来是想用se ...

  4. python爬虫用什么电脑好_【Python】【爬虫】最近想买电脑,用Python爬取京东评论做个参考...

    最近想换电脑,又有点不确定买哪一款.所以决定爬取京东上电脑评论,做个参考,并把最终结果绘制成词云图. 一.先来看下三款电脑评价的词云图 1 用Python爬取京东自营ThinkPad T490s的评论 ...

  5. 【Python爬虫】最近想买电脑,用Python爬取京东评论做个参考

      最近想换电脑,又有点不确定买哪一款.所以决定爬取京东上电脑评论,做个参考,并把最终结果绘制成词云图.    一.先来看下三款电脑评价的词云图    1 用Python爬取京东自营ThinkPad ...

  6. python爬取京东数据加载失败_python 爬京东数据时,无法登陆。

    想使用python爬取京东的快递信息,现在需要解决的首要问题是使用python模拟浏览器登陆,遇到了下面的问题. _t _ntNBMNX ({"username":"\u ...

  7. [爬虫-python]爬取京东100页的图书(机器学习)的信息(价格,打折后价格,书名,作者,好评数,差评数,总评数)

    Python爬取京东的机器学习类图书的信息 一,配置搜索关键字和页数, 二,查找用到的三个URL的过程 1. 搜索图书的URL 2. 评论总数,差评数,好评数的URL 3. 当前价格与打折前价格URL ...

  8. 如何使用python编程抢京东优惠券 知乎_学好Python爬取京东知乎价值数据

    原标题:学好Python爬取京东知乎价值数据 Python爬虫为什么受欢迎 如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面,像 Python这 ...

  9. Python爬取京东任意商品数据实战总结

    利用Python爬取京东任意商品数据 今天给大家展示爬取京东商品数据 首先呢还是要分思路的,我分为以下几个步骤: 第一步:得到搜索指定商的url 第二步:获得搜索商品列表信息 第三步:对得到的商品数据 ...

最新文章

  1. 程序设计分析(开篇)——混沌初开,顿悟设计
  2. php 绘制圆角矩形,C#_C#画圆角矩形的方法,本文实例讲述了C#画圆角矩形 - phpStudy...
  3. 那些让我唏嘘不已的嫡亲同学
  4. 如何开发auto complete 智能提示功能
  5. python用途与前景-Python 未来发展前景怎么样?
  6. Android复制Assets目录下的文件到/data/data目录
  7. 【Kaggle-MNIST之路】自定义程序结构(七)
  8. 技术盘点:2022年云原生架构趋势解读
  9. python3循环遍历嵌套字典替换指定值
  10. javascript原型链中 this 的指向
  11. [数位DP]JZOJ 3363 Number
  12. mysql -u -p$_mysql_
  13. input[type=radio]自定义样式
  14. nRF52笔记(5)sniffer 抓包
  15. Android 中的hook技术是什么
  16. React Or Vue
  17. 如何用MATLAB叠加傅里叶级数,傅里叶级数展开matlab实现
  18. 公司常用云服务器详解:企业2核4G、4核8G、8核16G配置介绍
  19. 宇视IPC9312I-FW通道2无录像
  20. U盘病毒病状及解决方法

热门文章

  1. 软文推广的精髓“大象无形”
  2. 超实用的7种 pytorch 网络可视化方法,进来收藏一波
  3. MODNet matting
  4. 将VSCode设置成中文语言环境
  5. 深度学习方法(十七):word2vec算法原理(1):跳字模型(skip-gram) 和连续词袋模型(CBOW)
  6. 创业者心中排名第一的VC,投资了OpenAI
  7. 小米816收官:总支付金额超98.3亿,小米MIX4仅1分钟破3亿
  8. 某学生参加唱歌比赛。输入8位评委的成绩,求平均分 并输出。
  9. 找社保代理怎样才靠谱?
  10. 基于python下django框架 实现校园新生报到系统详细设计