爬虫项目七:Python对唯品会商品数据、评论数据的爬取
文章目录
- 前言
- 一、商品数据
- 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对唯品会商品数据、评论数据的爬取相关推荐
- 自学爬虫项目(二)一一利用selenium模拟淘宝登录,爬取商品数据
文章目录 前言 一.明确目标 二.分析过程 三.代码封装 总结 前言 你是否还在为学习Python没有方向而苦恼?快来跟着壹乐一起学习吧!让我们共同进步! 今天我们用selenium与Beautifu ...
- 【Python爬虫项目】新发地蔬菜水果等食品价格爬取(详细附源码)
新发地获取蔬菜水果等食品价格 爬取信息具体如下: 1.食品名称 2.最低价 3.最高价 4.平均价 5.规格 6.产地 7.单位 8.发布日期 1.检查网页源码 通过检查源码可以看出数据并不在网页源码 ...
- python爬虫excel数据_最简单的爬数据方法:Excel爬取数据,仅需6步
原标题:最简单的爬数据方法:Excel爬取数据,仅需6步 在看到这篇文章的时候,大家是不是都还停留在对python爬虫的迷恋中,今天就来教大家怎样使用微软的Excel爬取一个网页的后台数据,注:此方法 ...
- python对城市规划_Python对城市距离自动化爬取【必学小型项目】
本地创建数据库,将 excel 数据存储到 city 表中,再取 | 湖北省 | 的所有地级市和县.县级市.区数据作为样表数据记录在样表中.利用 python 的 xlrd 包,定义 process_ ...
- python爬取京东手机数据_用scrapy爬取京东的数据
本文目的是使用scrapy爬取京东上所有的手机数据,并将数据保存到MongoDB中. 一.项目介绍 主要目标 1.使用scrapy爬取京东上所有的手机数据 2.将爬取的数据存储到MongoDB 环境 ...
- Jsoup:用Java也可以爬虫,怎么使用Java进行爬虫,用Java爬取网页数据,使用Jsoup爬取数据,爬虫举例:京东搜索
Jsoup:用Java也可以爬虫,怎么使用Java进行爬虫,用Java爬取网页数据,使用Jsoup爬取数据,爬虫举例:京东搜索 一.资源 为什么接下来的代码中要使用el.getElementsByTa ...
- python爬取微博数据存入数据库_python爬取微博并且存入数据库
由于平时喜欢刷微博,追星,所以写了想要写一个爬取微博的爬虫,在老师的建议下选择从移动端爬取,因为移动端页面元素简洁,易于爬取.在看微博时发现有比移动端更加简单的一个版本....老年机版?就是分页式的. ...
- python爬取京东评论分析_Python爬取京东商品评论+制作关键字云+情感分析图
首先我们要了解一下,我们用requests包爬取的都只是写在HTML页面上的数据,但是呢,现在很多网站的数据都是通过js代码生成的,除非你找到它,不然是爬取不到的. 首先我随意打开一个京东的商品的详情 ...
- python批量评论_python批量爬取京东手机评论信息及星级
本科生在读,如有问题欢迎指正 爬取京东评论信息:评论信息是动态加载的,所以在商品详情页不能直接爬取评论. 下面以一款手机为例,详细介绍python批量爬取京东评论. 找到评论区域 image.png ...
- Python之手把手教你用JS逆向爬取网易云40万+评论并用stylecloud炫酷词云进行情感分析
本文借鉴了@平胸小仙女的知乎回复 https://www.zhihu.com/question/36081767 写在前面: 文章有点长,操作有点复杂,需要代码的直接去文末即可.想要学习的需要有点耐心 ...
最新文章
- mysql/mariadb命令如何获取帮助
- Sql 先进先出计算积分
- Objective-C 执行外部命令
- 在DataGridView中添加行号
- Android 基础教程之-------Android ProgressBar的使用!
- javascript访问ACCESS数据库
- 如何设置多个图层层叠关系_如何玩转 XMind 中的多种思维结构?
- Java编程中值得注意的对象引用现象
- OutOfMemoryError:解决方案反模式
- SRAM和SDRAM的区别
- 执行git push出现Everything up-to-date
- 搭建Hadoop的HA高可用架构(超详细步骤+已验证)
- PAT乙级题解目录——更新ing
- Python安装Talib库
- 微信模板消息批量推送
- 服务器虚拟机如何复制文件,Windows中复制虚拟机
- C语言入门——求n的阶乘
- Flutter 安卓微信分享提示签名不对
- 监控实时直播的四分屏的前端展示
- 2022(一等奖)C23“城轨促交融,慢行赋新机”—TOD模式下城市慢行接驳与碳减排辅助出行系统