文章目录

  • 前言
  • 一、商品数据
    • 1.分析页面
    • 2.分析url
    • 3.解析数据
  • 二、评论数据
    • 1.抓包
    • 2.分析url
    • 3.获取数据
  • 三、总结

前言

用Python爬取唯品会商品数据、评论数据


提示:以下是本篇文章正文内容,下面案例可供参考

一、商品数据

1.分析页面

我们进入唯品会官网,搜索商品观察页面,向下滑动页面 可以看到数据是动态加载的,对于动态加载数据 有两种办法一个是selenium一个是找接口,我是用的selenium

2.分析url

我们拿首页url看一看,keyword就是商品关键词 无容置疑,但是关键词后面的是什么呢?不知道

https://category.vip.com/suggest.php?
keyword=%E5%B0%8F%E7%B1%B3
&ff=235|12|1|1

我们点击第二页拿出url,看一看,看到多了一个参数page,哪个不知道的参数还是不知道

https://category.vip.com/suggest.php?
keyword=%E5%B0%8F%E7%B1%B3
&ff=235%7C12%7C1%7C1
&page=2

我们大胆尝试一下,将keyword换成我们的中文,那个不知道的参数 直接去掉,最后的url

https://category.vip.com/suggest.php?keyword=小米&page=1

我们访问一下页面,看一下 是可以正常访问的,也就是说我们捏造的url是可以使用的

3.解析数据

我们上文知道了数据是动态加载的,并且分析了页面url

现在我们来操控selenium 访问url后 向下滚动 以此加载完整数据

bro.get(url)
bro.execute_script('window.scrollTo(0, document.body.scrollHeight)')  # 向下拉动一屏
self.bro.execute_script('window.scrollTo(0, document.body.scrollHeight)')  # 向下拉动一屏

加载完全数据后,就是解析数据,我们用的是Xpath

html=etree.HTML(bro.page_source)
div_list=html.xpath('//section[@class="goods-list c-goods-list--normal"]/div')[1:]
for div in div_list:sleep(0.5)dic={}try:dic["title"]=div.xpath('.//div[@class="c-goods-item__name  c-goods-item__name--two-line"]/text()')[0]except:dic["title"]=""

注意div_list并不能全部遍历,因为数据中第一个div是空数据没有用 所以舍去

二、评论数据

1.抓包

我们利用chrome的抓包工具,很容易的就抓到了评论数据包

2.分析url

我们把它的url拿出来看一看,参数有很多,但其中有很多没有的参数,以及干扰的参数,需要我们剔除

https://mapi.vip.com/vips-mobile/rest/content/reputation/queryBySpuId_for_pc?callback=getCommentDataCb
app_name=shop_pc
app_version=4.0
warehouse=VIP_BJ
fdc_area_id=101103105
client=pc
mobile_platform=1
province_id=101103
api_key=70f71280d5d547b2a7bb370a529aeea1
user_id=
mars_cid=1616550262960_63ea57943137d7888115c8b5935ca173
wap_consumer=a
spuId=7958247815467008
brandId=1710612828
page=1
pageSize=10
timestamp=1616575850000
keyWordNlp=%E5%85%A8%E9%83%A8
_=1616575837670

最后简化后的url,这几个参数缺一不可,我们可以利用requests 中params携带参数的方式,把这些参数带上

https://mapi.vip.com/vips-mobile/rest/content/reputation/queryBySpuId_for_pc?
api_key=70f71280d5d547b2a7bb370a529aeea1
spuId=1183397626621612032
page=1
pageSize=10

如果说我们直接用上面的url直接访问是得不到数据的,因为还有需要请求头,这里有一个坑,那就是cookie中的中文 需要删掉,cookie中会携带你自己的省份和城市 这个需要删除 要不然会报错

head = {"referer":"https://detail.vip.com/","cookie":'vip_address=%7B%22pid%22%3A%22101103%22%2C%22cid%22%3A%22101103105%22%2C%22pname%22%3A%22%5Cu6cb3%5Cu5317%5Cu7701%22%2C%22cname%22%3A%22%5Cu90a2%5Cu53f0%5Cu5e02%22%7D; vip_provin550262960_63ea57943137d7888115c8b5935ca173',"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36"
}

3.获取数据

我们分析好了url,现在来看数据,返回的是json数据我们进入json.cn转换一下,可以看到每一条评论数据都在data中


知道了这些就好写代码了

text=requests.get(url=url,headers=head,params=params).json()
for da in text["data"]:dic={}try:dic["authorName"]=da["reputationUser"]["authorName"]except:dic["authorName"]=""

三、总结

唯品会的数据爬取很简单,都是常规操作,反爬不是不严重,但是数据奇少

如果说你不想写代码,想直接用爬虫,可以去公众号“阿虚学Python”中回复“唯品会”,获取本篇文章的完整代码,代码我已经设置过了,还是比较人性化的

好了,这篇文章已经结束了,如果你对爬虫感兴趣,可以关注我的主页 最近都在写一些爬虫案例,主页中已经更新了多个爬虫项目,谢谢大家的观看

爬虫项目七:Python对唯品会商品数据、评论数据的爬取相关推荐

  1. 自学爬虫项目(二)一一利用selenium模拟淘宝登录,爬取商品数据

    文章目录 前言 一.明确目标 二.分析过程 三.代码封装 总结 前言 你是否还在为学习Python没有方向而苦恼?快来跟着壹乐一起学习吧!让我们共同进步! 今天我们用selenium与Beautifu ...

  2. 【Python爬虫项目】新发地蔬菜水果等食品价格爬取(详细附源码)

    新发地获取蔬菜水果等食品价格 爬取信息具体如下: 1.食品名称 2.最低价 3.最高价 4.平均价 5.规格 6.产地 7.单位 8.发布日期 1.检查网页源码 通过检查源码可以看出数据并不在网页源码 ...

  3. python爬虫excel数据_最简单的爬数据方法:Excel爬取数据,仅需6步

    原标题:最简单的爬数据方法:Excel爬取数据,仅需6步 在看到这篇文章的时候,大家是不是都还停留在对python爬虫的迷恋中,今天就来教大家怎样使用微软的Excel爬取一个网页的后台数据,注:此方法 ...

  4. python对城市规划_Python对城市距离自动化爬取【必学小型项目】

    本地创建数据库,将 excel 数据存储到 city 表中,再取 | 湖北省 | 的所有地级市和县.县级市.区数据作为样表数据记录在样表中.利用 python 的 xlrd 包,定义 process_ ...

  5. python爬取京东手机数据_用scrapy爬取京东的数据

    本文目的是使用scrapy爬取京东上所有的手机数据,并将数据保存到MongoDB中. 一.项目介绍 主要目标 1.使用scrapy爬取京东上所有的手机数据 2.将爬取的数据存储到MongoDB 环境 ...

  6. Jsoup:用Java也可以爬虫,怎么使用Java进行爬虫,用Java爬取网页数据,使用Jsoup爬取数据,爬虫举例:京东搜索

    Jsoup:用Java也可以爬虫,怎么使用Java进行爬虫,用Java爬取网页数据,使用Jsoup爬取数据,爬虫举例:京东搜索 一.资源 为什么接下来的代码中要使用el.getElementsByTa ...

  7. python爬取微博数据存入数据库_python爬取微博并且存入数据库

    由于平时喜欢刷微博,追星,所以写了想要写一个爬取微博的爬虫,在老师的建议下选择从移动端爬取,因为移动端页面元素简洁,易于爬取.在看微博时发现有比移动端更加简单的一个版本....老年机版?就是分页式的. ...

  8. python爬取京东评论分析_Python爬取京东商品评论+制作关键字云+情感分析图

    首先我们要了解一下,我们用requests包爬取的都只是写在HTML页面上的数据,但是呢,现在很多网站的数据都是通过js代码生成的,除非你找到它,不然是爬取不到的. 首先我随意打开一个京东的商品的详情 ...

  9. python批量评论_python批量爬取京东手机评论信息及星级

    本科生在读,如有问题欢迎指正 爬取京东评论信息:评论信息是动态加载的,所以在商品详情页不能直接爬取评论. 下面以一款手机为例,详细介绍python批量爬取京东评论. 找到评论区域 image.png ...

  10. Python之手把手教你用JS逆向爬取网易云40万+评论并用stylecloud炫酷词云进行情感分析

    本文借鉴了@平胸小仙女的知乎回复 https://www.zhihu.com/question/36081767 写在前面: 文章有点长,操作有点复杂,需要代码的直接去文末即可.想要学习的需要有点耐心 ...

最新文章

  1. mysql/mariadb命令如何获取帮助
  2. Sql 先进先出计算积分
  3. Objective-C 执行外部命令
  4. 在DataGridView中添加行号
  5. Android 基础教程之-------Android ProgressBar的使用!
  6. javascript访问ACCESS数据库
  7. 如何设置多个图层层叠关系_如何玩转 XMind 中的多种思维结构?
  8. Java编程中值得注意的对象引用现象
  9. OutOfMemoryError:解决方案反模式
  10. SRAM和SDRAM的区别
  11. 执行git push出现Everything up-to-date
  12. 搭建Hadoop的HA高可用架构(超详细步骤+已验证)
  13. PAT乙级题解目录——更新ing
  14. Python安装Talib库
  15. 微信模板消息批量推送
  16. 服务器虚拟机如何复制文件,Windows中复制虚拟机
  17. C语言入门——求n的阶乘
  18. Flutter 安卓微信分享提示签名不对
  19. 监控实时直播的四分屏的前端展示
  20. 2022(一等奖)C23“城轨促交融,慢行赋新机”—TOD模式下城市慢行接驳与碳减排辅助出行系统

热门文章

  1. 基于Arduino UNO的光驱写字机制作
  2. Linux下Qt窗口半透明,Qt实现嵌入桌面的半透明窗口 good
  3. Linux openssl 生成证书的详解
  4. sm2证书生成(双证书)
  5. rstudio安装后如何打开_Rstudio Server的安装和使用(附常见问题)
  6. 无盘服务器吃鸡卡,无盘新手必备知识
  7. Spring Cloud Gateway(一)为什么用网关、能做什么、为什么选择Gateway、谓词工厂、过滤器配置
  8. 《让你受益一生的59个好习惯》感悟
  9. asterisk连接sip139网络电话
  10. 88E1111使用记录