唯品会商品信息实战
1. 目标网址和页面解析
2. 爬虫初探
3. 爬虫实操
3.1 进行商品id信息的爬取
3.2 商品id数据url构造
3.3 商品id数据格式转化及数量验证
3.4 商品详细信息获取
4. 全部代码
1. 目标网址和页面解析
唯品会官网中假如搜索护肤套装,返回的页面如下
下拉右侧滚动条可以发现,滑动到下面的时候页面会自动刷新出商品的数据,这里就体现了ajax交互,说明商品的信息是存放在json接口中,接着拉到底就可以发现翻页的按钮了,如下
2. 爬虫初探
尝试进行抓包,获取真实商品数据所在的网址页面,首先鼠标右键进入检查界面,点击Network后刷新页面,这时候就会返回请求的信息,需要进行查找筛选,找到具体含有商品信息的链接文件,经过检查发现内容大多在callback有关的文件中,如下
分析这七个文件,发现有用的只有四个,其中第二个rank文件包含了当前页面的所有商品的编号
然后剩下的3个v2文件中就是将这120个商品进行拆分,分别如下(商品的序号都是从0开始的)
因此搜索页面的120个商品的信息真实的数据接口就查找完毕了,然后以其中的某一个链接文件进行爬虫数据的获取尝试,看看获得结果如何,然后总结规律看看是否可以同时爬取该页面中全部的数据
添加user-agent,cookie,refer相关信息后设置后请求头(鼠标点击Headers),把页面接口数据的url复制粘贴后赋值,并进行数据请求,代码如下,比如先以20个商品的数据进行请求
获取cookie,可以取消callback的筛选,然后选择默认返回的第一个suggest文件,如下
注意:根据自己的浏览器返回的内容设置请求头headers
import requests
headers = {
'Cookie': 'vip_city_code=104101115; vip_wh=VIP_HZ; vip_ipver=31; user_class=a; mars_sid=ff7be68ad4dc97e589a1673f7154c9f9; VipUINFO=luc%3Aa%7Csuc%3Aa%7Cbct%3Ac_new%7Chct%3Ac_new%7Cbdts%3A0%7Cbcts%3A0%7Ckfts%3A0%7Cc10%3A0%7Crcabt%3A0%7Cp2%3A0%7Cp3%3A1%7Cp4%3A0%7Cp5%3A0%7Cul%3A3105; mars_pid=0; visit_id=98C7BA95D1CA0C0E518537BD0B4ABEA0; vip_tracker_source_from=; pg_session_no=5; mars_cid=1600153235012_7a06e53de69c79c1bad28061c13e9375',
'Referer': 'https://category.vip.com/suggest.php?keyword=%E6%8A%A4%E8%82%A4&ff=235|12|1|1',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
}
url = 'https://mapi.vip.com/vips-mobile/rest/shopping/pc/product/module/list/v2?callback=getMerchandiseDroplets3&app_name=shop_pc&app_version=4.0&warehouse=VIP_HZ&fdc_area_id=104101115&client=pc&mobile_platform=1&province_id=104101&api_key=70f71280d5d547b2a7bb370a529aeea1&user_id=&mars_cid=1600153235012_7a06e53de69c79c1bad28061c13e9375&wap_consumer=a&productIds=6918324165453150280%2C6918256118899745105%2C6918357885382468749%2C6918449056102396358%2C6918702822359352066%2C6918479374036836673%2C6918814278458725896%2C6918585149106754305%2C6918783763771922139%2C6917924417817122013%2C6918747787667990790%2C6918945825686792797%2C6918676686121468885%2C6918690813799719966%2C6917924776628925583%2C69188084