本文具有时效性,指不定哪天失效

时间:2020-8

网页分析

一般来说,请求的数据 会有几种可能:

1、很简单的html页面(静态网页),就直接requests就可以请求成功;

2、js渲染的页面 ,很常见,requests请求一堆js数据;

3、需要登录才能获取,登录后,把cookie 加入请求;

4、json数据

显然淘宝不是静态网页,直接打开某个商品(我们这里选择Nike旗舰店的一双鞋),选择评论页面,按F12进入调试页面页面,选择network,然后点击评论的下一页观察页面请求


放大看一下

显然评论数据就藏在list_detail开头的响应中,那我们就直接看标头(按照惯例,直接复制标题链接打开,并不能得到想要的信息,那就是还需要请求标头的信息):

一般来说,这么长的请求是比较难看的,通常需要多观察几页

重点在前面那部分,sellerid应该是商品id,currentpage是当前评论页,并且 &ua= 后面那一段长长的字符并不相同,或许可以把它去掉,待会代码试试。
再看看请求标头需要什么:

authority + path 就是上面的请求url,其他的language,encoding,每个网页基本都一样的,可加可不加。
我们需要的是cookie(记录客户端的用户信息,登录后会有),referer(告诉服务器该网页是从哪个页面链接过来的),user-agent(爬虫老朋友了,浏览器标识)

代码分析

开始写代码试试

import requestspage = 1 #最终代码改成for循环可以遍历下载path = 'https://rate.tmall.com/list_detail_rate.htm?itemId=612891862405&spuId=1532072041&sellerId=890482188&order=3&currentPage='
url = path + str(page) #原始链接加上页面headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.59 Safari/537.36 Edg/85.0.564.30',#referer随便填个淘宝网页应该都能用'referer': 'https://detail.tmall.com/item.htm?spm=a230r.1.14.80.675374f6O2Yqxg&id=612891862405&ns=1&abbucket=15','cookie': '复制你的cookie在这里'}
res = requests.get(url,headers = headers)

直接打印看看有没有获取成功:

可以看到数据是在的里面,虽然看起来乱七八糟。我们把里面的json提取出来就好:

import re
js_str = re.search('\{.*}',res.text)
js_str.group()


用josn加载会直观看出键值对:

import jsonjs_dict = json.loads(js_str.group())
js_dict

取出需要的属性(我这里只选择评论,商品属性,时间):

分析到这里已经足够了,接下来可以根据自己需求写代码:

最终代码:

import requests
import re
import json
import time
import pandas as pddef get_comments():for page in range(1,20):link = 'https://rate.tmall.com/list_detail_rate.htm?itemId=612891862405&spuId=1532072041&sellerId=890482188&order=3&currentPage='url = link + str(page) #原始链接加上页面数headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.59 Safari/537.36 Edg/85.0.564.30','referer': 'https://detail.tmall.com/item.htm?spm=a230r.1.14.80.675374f6O2Yqxg&id=612891862405&ns=1&abbucket=15','cookie': '复制你的cookie到这里'}res = requests.get(url,headers = headers)js_str = re.search('\{.*}',res.text)js_dict = json.loads(js_str.group())time.sleep(7)dict_content = {}rateContent = [] #评论auctionSku = [] #款式rateDate = [] #时间for i in range(len(js_dict['rateDetail']['rateList'])):rateContent.append(js_dict['rateDetail']['rateList'][i]['rateContent'])auctionSku.append([js_dict['rateDetail']['rateList'][i]['auctionSku']])rateDate.append([js_dict['rateDetail']['rateList'][i]['rateDate']])dict_content['rateContent'] = rateContentdict_content['auctionSku'] = auctionSkudict_content['rateDate'] = rateDate#dict_content['id'] = '890482188'df = pd.DataFrame(dict_content)if page == 1:df.to_csv('./nike.csv',encoding='utf_8_sig')else:df.to_csv('./nike.csv',mode = 'a',header= False,encoding='utf_8_sig')print('已保存第',page,'页','这一页有',i,'条评论')if __name__ == '__main__':   get_comments()

词云

补充

这仅仅只是一个商品的评论页面,能做的事还有很多,比如获取商品的属性,价格,月销量;遍历多个商品,店铺;对获取到的数据进行数据分析;

并且实际上搜索页面的商品数据就在网页源代码中:
user_id是商品id,并且在这里可以直观的获取价格,销量,评论数(这对我们控制上述代码控制for循环很有用)

爬取淘宝商品评论——2020-8月相关推荐

  1. 爬取淘宝商品评论信息

    爬取淘宝商品评论信息 近期学期需求,需要获取部分商品的评价信息.在此记录本次学习的过程. 找到URL 由于这是一个动态网页,因此需要找到评论实际的URL 首先进入你需要的商品的页面,按F12进入开发者 ...

  2. scrapy 爬取淘宝商品评论信息

    爬虫最后要达到的效果,是将某分类下,第一页的所有商品的评论保存至mysql中. 具体会保存评论日期.评论id.评论内容.商品链接和商品id. 爬虫部分代码 # -*- coding: utf-8 -* ...

  3. Python爬虫,抓取淘宝商品评论内容

    2019独角兽企业重金招聘Python工程师标准>>> 作为一个资深吃货,网购各种零食是很频繁的,但是能否在浩瀚的商品库中找到合适的东西,就只能参考评论了!今天给大家分享用pytho ...

  4. python多线程爬取淘宝商家图片

    此次爬取淘宝商家图片是为了对相关行业(此处以激光雷达为例)的产品结构以及外观设计进行对比.而淘宝的反爬机制非常强大,能力有限只能有简单点的办法进行爬取.由于淘宝的每一页数据都是存放在js文件里面,所以 ...

  5. python抓取淘宝商品评论最新版

    python抓取淘宝商品评论最新思路 import json import re from lxml import etree import pandas as pd import time impo ...

  6. 爬取淘宝商家货物简单销售数据,双十一马上就到了,秒杀准备了吗

    前天接一个爬取淘宝商家(自行车)信息的请求,要求数据按照其销售量排行. 完成该请求后,爬取数据(李宁卫衣)如下: 接下来看如何实现的? 首先打开淘宝网:https://www.taobao.com/, ...

  7. 爬取淘宝商品数据使用Java实现商品推荐系统(含sql文件、算法推导等)

    本文所有代码和sql文件,全放在了github上,可自行下载:https://github.com/8042965/recommenderSystem 文章目录 一.什么是推荐系统 二.利用数学解决相 ...

  8. 利用python requests库爬取淘宝商品评论_python

    文章目录 一.起因 二.项目实现 1. 分析实现方式 2. 编码实现 3. 完整代码 三.思考与改进 一.起因 看到一篇文章,感觉自己可以动手试试 Python 不用selenium 带你高效爬取京东 ...

  9. python自动化爬取淘宝商品数据导入execl表格!

    hello,大家好,我是夜斗小神社! 电商时代,淘宝.京东.天猫商品数据对店铺运营有极大的帮助,因此获取相应店铺商品的数据能够带来极大的价值,那么我们如何获取到相应的数据呢? 上一篇我们讲了pytho ...

  10. python自动化爬取淘宝商品数据导出execl表格

    整体思路: 打开浏览器– 打开url– 最大化浏览器– 点击登录,选择扫码– 登录后输入查询内容– 获取查询内容当前页码的字段– 循环点击下一页直到最后一页– 输出– 关闭浏览器 小白一枚,暂时还不会 ...

最新文章

  1. 从 Servlet 入手带你看架构和框架设计的套路
  2. php带参数单元测试_一文搞定单元测试核心概念
  3. 记录一次无聊的(经历了Nodejs - Shell - C)的探索问题过程
  4. Git 分支的创建与切换 —— Git 学习笔记 14
  5. 计算机基础知识-操作系统
  6. linux把终端嵌入桌面,在Ubuntu Linux桌面上嵌入终端窗口
  7. 修改oracle rac sid,修改Oracle RAC的_asm_hbeatiowait的方法
  8. python 字符串操作list【:-1】的几种用法
  9. Linux中Docker部署MySQL
  10. .net core EPPlus npoi_在.NET中隐藏带有只读Web路径的Web shell
  11. Linux异常进程kill无效的解决办法
  12. stm32串口传输数据第一个数据被吞_STM32串口发送第一个字符丢失解决之道
  13. si4463 api 寄存器中文
  14. 24点可不可以用计算机算出,24点计算器
  15. Android开发之EditText属性详解
  16. opencv之扩展模块安装
  17. android app申请内存大小,Android中App可分配内存的大小
  18. leetcode报数题
  19. Objective-C 之父 Brad Cox 逝世,创建过乐队、推动苹果软件生态
  20. OTM区块链应用离我们的生活有多近?

热门文章

  1. 软件工程领域2021年上半年的CCF-A和B类会议列表
  2. dsoframer java_dsoframer介绍
  3. linux下gmt4绘制站点分布图,GMT复杂图制作教程———让作图简单的飞起来
  4. 计算机基础无纸化考试题库,计算机基础考试题库及答案
  5. 人人译视界 for Mac智能翻译软件
  6. 三菱GXWorks2 变换梯形图
  7. 为何电脑系统相对通用而手机却相对定制
  8. 教程资源合集(网上搜集整理)
  9. 分布式概念及相关的名词定义
  10. MVPArms官方快速组件化方案开源,Android快速开发之架构组件