在讲爬取淘宝详情页数据之前,先来介绍一款 Chrome 插件:Toggle JavaScript (它可以选择让网页是否显示 js 动态加载的内容),如下图所示:

当这个插件处于关闭状态时,待爬取的页面显示的数据如下:

当这个插件处于打开状态时,待爬取的页面显示的数据如下:

  可以看到,页面上很多数据都不显示了,比如商品价格变成了划线价格,而且累计评论也变成了0,说明这些数据都是动态加载的,以下演示真实价格的找法(评论内容找法类似),首先检查页面元素,然后点击Network选项卡,刷新页面,可以看到很多动态加载的数据,在里面找到包含商品价格的链接(可以使用Ctrl+f查找),如下图所示:

  将此链接在新的标签页打开,如下图所示,可以看到,被禁止访问了,所以爬取的时候要在headers中加上Referer字段告诉服务器你是从哪个页面链接过来的,Referer字段可以在这里查看:


评论数据的链接可以直接访问(和价格信息找法类似),这里我知己去访问它,如下图所示:

  可以看到评论信息总共有7页,而且都是json格式的数据,所以可以用json反序列化去抽取数据,当然也可以用正则表达式,下面我将演示用正则去抽取数据,因为评论数据过多,这里只抓取第一页,如果需要所有评论数据,可以循环构造url,只需要修改currentPage参数的值就行。程序源码如下:

# filename:spider_taobao.py
#!/usr/bin/env python
# -*- coding=utf-8 -*-import re
import urllib2def spider_taobao(url):headers = {'Accept':'application/json, text/plain, */*','Accept-Language':'zh-CN,zh;q=0.3','Referer':'https://item.taobao.com/item.htm','User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36','Connection':'keep-alive',}goods_id = re.findall('id=(\d+)', url)[0]try:req = urllib2.Request(url=url, headers=headers)res = urllib2.urlopen(req).read().decode('gbk', 'ignore')except Exception as e:print '无法打开网页:', e.reasontry:title = re.findall('<h3 class="tb-main-title" data-title="(.*?)"', res)title = title[0] if title else Noneline_price = re.findall('<em class="tb-rmb-num">(.*?)</em>', res)[0]# 30-42行为抓取淘宝商品真实价格,该数据是动态加载的purl = "https://detailskip.taobao.com/service/getData/1/p1/item/detail/sib.htm?itemId={}&modules=price,xmpPromotion".format(goods_id)price_req = urllib2.Request(url=purl, headers=headers)price_res = urllib2.urlopen(price_req).read()data = list(set(re.findall('"price":"(.*?)"', price_res)))# data列表中的价格可能是定值与区间的组合,也可能只是定值,而且不一定有序real_price = ""for t in data:if '-' in t:real_price = tbreakif not real_price:real_price = sorted(map(float, data))[0]# 45-53行为抓取评论数据,该数据也是动态加载的comment_url = "https://rate.tmall.com/list_detail_rate.htm?itemId={}&sellerId=880734502&currentPage=1".format(goods_id)comment_data = urllib2.urlopen(comment_url).read().decode("GBK", "ignore")temp_data = re.findall('("commentTime":.*?),"days"', comment_data)temp_data = temp_data if temp_data else re.findall('("rateContent":.*?),"reply"', comment_data)comment = ""for data in temp_data:comment += data.encode('utf-8')comment = comment if comment else "暂无评论"except Exception as e:print '数据抽取失败!!!'print '商品名:', titleprint '划线价格:', line_priceprint '真实价格:', real_priceprint '商品链接:', urlprint '部分评论内容:', commentif __name__ == '__main__':#url = 'https://item.taobao.com/item.htm?spm=a230r.1.14.30.43306a3fOeuZ0B&id=553787375606&ns=1&abbucket=10#detail'url = raw_input("请输入商品链接: ")spider_taobao(url)

运行结果如下:

Python爬取淘宝商品详情页数据相关推荐

  1. 数据分析实战二:爬取淘宝商品详情页进行分析

    对淘宝商品信息进行数据分析 项目流程: 1.数据获取 2.数据清洗 3.数据分析与可视化 数据获取(爬虫) 淘宝数据是通过动态加载的方式显示的,所以采用selenium模拟浏览器操作爬取商品页详情信息 ...

  2. python爬取淘宝商品图片

    python爬取淘宝商品的图片 话不多说,直接上代码: from selenium import webdriver from selenium.webdriver.common import key ...

  3. python爬取淘宝商品做数据挖掘

    作业要求:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/3159 项目内容: 本项目选择 淘宝商品类目:零食 数量:一共100页,44 ...

  4. Python爬取淘宝商品信息保存到Excel

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

  5. python电商数据挖掘_利用Python爬取淘宝商品并数据挖掘与分析实战!此乃大型项目!...

    项目内容 本案例选择>> 商品类目:沙发: 数量:共100页 4400个商品: 筛选条件:天猫.销量从高到低.价格500元以上. 项目目的 1. 对商品标题进行文本分析 词云可视化 2. ...

  6. 使用python爬取淘宝商品信息

    使用python爬虫爬取淘宝商品信息 使用的模块主要有 selenium ,time , re, from selenium import webdriver import time import c ...

  7. 用Python爬取淘宝商品

    本文爬取淘宝女装短裙商品,并将商品信息存入mysql中 分析思路 1.页面分析 在淘宝首页搜索"短裙",进入商品列表页面: 分析页面源代码: 通过分析源代码,可发现商品相关的几个关 ...

  8. python爬取淘宝商品信息_python爬取淘宝商品信息并加入购物车

    先说一下最终要达到的效果:谷歌浏览器登陆淘宝后,运行python项目,将任意任意淘宝商品的链接传入,并手动选择商品属性,输出其价格与剩余库存,然后选择购买数,自动加入购物车. 在开始爬取淘宝链接之前, ...

  9. python爬取淘宝商品信息并加入购物车

    先说一下最终要达到的效果:谷歌浏览器登陆淘宝后,运行python项目,将任意任意淘宝商品的链接传入,并手动选择商品属性,输出其价格与剩余库存,然后选择购买数,自动加入购物车. 在开始爬取淘宝链接之前, ...

最新文章

  1. 【周末阅读】你不得不知道的10大AI赋能行业,你身边都能找到!
  2. Jenkins+Jmeter持续集成笔记(四:定时任务和邮件通知)
  3. 机器学习之五:神经网络、反向传播算法推导
  4. 【完成整理】45套很酷的长影影 LOGO 设计
  5. 【Python学习】 - PIL - 各种图像操作
  6. VMware发布虚拟云网络创新技术,连接和保护分布式多云企业
  7. 之江学院第0届 A qwb与支教 容斥与二分
  8. 一次系统调用开销到底有多大?strace、time、perf命令
  9. 【收藏】这个时候才是最好的自学时间!深度学习-机器学习-GNN-NLP等AI课程超级大列表汇总,拿走不谢...
  10. Struts xml中Action的method与路径的三种匹配方法
  11. OpenCV中ROI
  12. SQLyog的下载与安装
  13. TransE算法详解
  14. 《统计学》第八版贾俊平第三章课后答案Excel
  15. 测试打印机性能的软件,打印机检测软件Printer Check
  16. 数学建模——论文排版
  17. python 词云图
  18. php eregi 返回值含义,Deprecated: Function eregi() is deprecated php5.3开始不支持eregi()函数...
  19. U盘未分配空间合并——U盘分区扩展卷为灰色的
  20. 百度地图API详解之自定义地图类型

热门文章

  1. TCP调试-16进制调试
  2. OPPO A31解账户锁刷机包 线刷教程
  3. 锐捷交换机配置RLDP协议进行防环处理
  4. QEMU Guest Agent安装(内网环境)
  5. vue 使用addRoutes()合并动态有权路由
  6. 程序性能优化探讨(6)——矩阵乘法优化之分块矩阵
  7. 2020-01-17 windows 10 pro 安装mysql-5.7.29-winx64.zip
  8. 炫酷的汽车换色效果分享——X战警魔形女变身
  9. 超分辨率——基于SRGAN的图像超分辨率重建(Pytorch实现)
  10. 华为投的源杰半导体通过注册:9个月营收1.9亿 实控人为美国籍