本次内容:

爬取电商平台数据,python爬取某维商品数据

课程亮点

  1. 动态数据抓包演示
  2. json数据解析
  3. requests模块的使用
  4. 保存csv

环境介绍

  • python 3.8 [最好用和老师一样的版本]
  • pycharm 2021.2 专业版 yyds
  • requests >>> pip install requests
  • csv

安装方法:

win + R 输入cmd 输入安装命令 pip install 模块名

如果出现爆红 可能是因为 网络连接超时 切换国内镜像源

相对应的安装包/安装教程/激活码/使用教程/学习资料/工具插件 可以私我领取哦~

思路流程: (爬虫最基本流程)

一. 数据来源分析

分析我们想要的数据 可以从哪里获取

  1. 通过开发者工具分析可得 一页商品 120条数据 他分为三组内容 50 50 20

  2. 每个url地址需要的商品ID 前50个ID为一组 中间50个ID为一组 最后20个ID为一组

  3. 去分析 我们商品ID从哪里来的…

如果想要通过爬取获取这些数据

  1. 首先获取所有商品ID
  2. 进行分组分类(切片) 前50 中50 后20
  3. 把这些传入 商品数据包里面 就可以得到 商品数据

二. 代码实现步骤

  1. 发送请求, 对于ID的网址发送你请求
  2. 获取数据, 获取服务器返回的数据内容
  3. 解析数据, 提取我们想要商品ID
  4. 发送请求, 把商品ID传入 商品数据包url里面
  5. 获取数据, 获取服务器返回的数据内容
  6. 解析数据, 提取我们想要商品数据信息
  7. 保存数据, 把数据保存csv表格文件
  8. 多页爬取
  9. 查看结果

爬虫 [模拟]浏览器对于服务器发送请求

首先导入模块

# 导入数据请求模块
import requests  # pip install requests 在cmd里面或者pycharm终端里面安装
# 导入格式化输出模块
import pprint
# 导入csv模块
import csv
# 导入时间模块
import time

后续代码

# 创建一个csv文件
f = open('口红data.csv', mode='a', encoding='utf-8', newline='')
# 调用csv方法
csv_writer = csv.DictWriter(f, fieldnames=['标题','品牌','原价','折扣','售价','属性','详情页',
])
csv_writer.writeheader()headers = {# 'cookie': 'vip_cps_cuid=CU1641815302342da2eee44221f3c0d4; vip_cps_cid=1641815302345_f63fc9087855c60e21a2950b0189ec24; cps_share=cps_share; vip_wh=VIP_NH; cps=adp%3Antq8exyc%3A%40_%401641815302344%3Amig_code%3A4f6b50bf15bfa39639d85f5f1e15b10f%3Aac014miuvl0000b5sq8cx6g534o9fx83; PAPVisitorId=8d9d410e1944339b815ec911aa7f9714; vip_new_old_user=1; vip_address=%257B%2522pname%2522%253A%2522%255Cu5e7f%255Cu4e1c%255Cu7701%2522%252C%2522pid%2522%253A%2522104104%2522%252C%2522cname%2522%253A%2522%255Cu5e7f%255Cu5dde%255Cu5e02%2522%252C%2522cid%2522%253A%2522104104101%2522%257D; vip_province=104104; vip_province_name=%E5%B9%BF%E4%B8%9C%E7%9C%81; vip_city_name=%E5%B9%BF%E5%B7%9E%E5%B8%82; vip_city_code=104104101; user_class=a; mst_area_code=104104; mars_sid=da8baa5d8a2c73dba298da602ff87292; mars_pid=0; visit_id=A7C92212D3DF003A212EB6666C36D2C3; 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; vip_access_times=%7B%22list%22%3A2%7D; pg_session_no=7; vip_tracker_source_from=; mars_cid=1641815303238_957cedc5b831e57207fd8334dcd97297','referer': 'https://category.vip.com/',  # referer 防盗链 告诉服务器我们的请求的url地址 是从哪里跳转过来的# user-agent 用户代理 浏览器基本身份标识'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'
}def get_shop_info(shop_id):"""获取商品数据信息"""shop_url = 'https://mapi.vip.com/vips-mobile/rest/shopping/pc/product/module/list/v2'# 批量替换 选择要替换的内容 ctrl + R  输入 正则表达式命令data = {# 'callback': 'getMerchandiseDroplets1','app_name': 'shop_pc','app_version': '4.0','warehouse': 'VIP_NH','fdc_area_id': '104104101','client': 'pc','mobile_platform': '1','province_id': '104104','api_key': '70f71280d5d547b2a7bb370a529aeea1','user_id': '','mars_cid': '1641815303238_957cedc5b831e57207fd8334dcd97297','wap_consumer': 'a','productIds': shop_id,'scene': 'search','standby_id': 'nature','extParams': '{"stdSizeVids":"","preheatTipsVer":"3","couponVer":"v2","exclusivePrice":"1","iconSpec":"2x","ic2label":1}','context': '','_': '1641816680425',}response = requests.get(url=shop_url, params=data, headers=headers)# print(response.json())# pprint.pprint(response.json())products = response.json()['data']['products']for i in products:# pprint.pprint(i)# 创建一个字典 把数据内容传入字典shop_attrs_list = [j['name'] + ':' + j['value'] for j in i['attrs']]shop_attrs = ','.join(shop_attrs_list)href = f'https://www.vipglobal.hk/detail-{i["brandId"]}-{i["productId"]}.html'# ['色系:红调', '妆感:水润', ]dit = {'标题': i['title'],'品牌': i['brandShowName'],'原价': i['price']['marketPrice'],'折扣': i['price']['mixPriceLabel'],'售价': i['price']['salePrice'],'属性': shop_attrs,'详情页': href}# print(shop_attrs)csv_writer.writerow(dit)print(dit)for page in range(0, 601, 120):time.sleep(1)# 1. 发送请求, 对于ID的网址发送你请求url = 'https://mapi.vip.com/vips-mobile/rest/shopping/pc/search/product/rank'  # 确定url地址# 请求参数data = {# 'callback': 'getMerchandiseIds','app_name': 'shop_pc','app_version': '4.0','warehouse': 'VIP_NH','fdc_area_id': '104104101','client': 'pc','mobile_platform': '1','province_id': '104104','api_key': '70f71280d5d547b2a7bb370a529aeea1','user_id': '','mars_cid': '1641815303238_957cedc5b831e57207fd8334dcd97297','wap_consumer': 'a','standby_id': 'nature','keyword': '口红','lv3CatIds': '','lv2CatIds': '','lv1CatIds': '','brandStoreSns': '','props': '','priceMin': '','priceMax': '','vipService': '','sort': '0','pageOffset': page,'channelId': '1','gPlatform': 'PC','batchSize': '120','_': '1641816680423',}# 请求头 把python代码伪装成浏览器发送请求(模拟成浏览器发送请求)# 发送请求response = requests.get(url=url, params=data, headers=headers)# 打印response数据 <Response [903]> 服务器给特定状态码 你请求失败了# <Response [200]> 200请求成功# 获取响应体什么数据response.json() 获取响应json字典数据# 字典取值 根据冒号左边的内容 提取冒号右边的内容# products = response.json()['data']['products']# lis = [] # 创建一个空列表# for index in products:#     pid = index['pid']#     lis.append(pid) # 往列表里面添加元素#     # print(pid)# print(lis)pid_list = [index['pid'] for index in response.json()['data']['products']]# print(pid_list)# 切片 分为三组 前50 中间 50 最后 20# [起始:结束:步长]  不写起始默认是0 不写步长默认 1  不写结束默认到最后# split 字符串分割方法 strip 去除字符串左右两端空格# 用 , 把列表里面所有元素合并起来string_1 = ','.join(pid_list[:50])string_2 = ','.join(pid_list[50:100])string_3 = ','.join(pid_list[100:])# 把列表转成字符串 join# string_4 = ','.join(pid_list)get_shop_info(string_1)get_shop_info(string_2)get_shop_info(string_3)

模块安装问题:

如果安装python第三方模块:

  1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车
  2. 在pycharm中点击Terminal(终端) 输入安装命令

安装失败原因:
失败一:

pip 不是内部命令
解决方法: 设置环境变量

失败二: 出现大量报红 (read time out)

解决方法: 因为是网络链接超时, 需要切换镜像源
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/
例如:pip3 install -i https://pypi.doubanio.com/simple/ 模块名

失败三: cmd里面显示已经安装过了, 或者安装成功了, 但是在pycharm里面还是无法导入

解决方法: 可能安装了多个python版本 (anaconda 或者 python 安装一个即可)
卸载一个就好或者你pycharm里面python解释器没有设置好


如何配置pycharm里面的python解释器?

  1. 选择file(文件) >>> setting(设置) >>> Project(项目) >>> python interpreter(python解释器)
  2. 点击齿轮, 选择add
  3. 添加python安装路径

pycharm如何安装插件?

  1. 选择file(文件) >>> setting(设置) >>> Plugins(插件)
  2. 点击 Marketplace 输入想要安装的插件名字 比如:翻译插件 输入 translation / 汉化插件 输入 Chinese
  3. 选择相应的插件点击 install(安装) 即可
  4. 安装成功之后 是会弹出 重启pycharm的选项 点击确定, 重启即可生效

好了,我的这篇文章写到这里就结束啦!

有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง

喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!

爬取电商平台数据,python爬取某维商品数据相关推荐

  1. pyhton爬虫 爬取电商平台商品历史价格、最低价格(慢慢买网)

    主要使用的库: requests:爬虫请求并获取源码 re:使用正则表达式提取数据 json:使用JSON提取数据 pandas:使用pandans存储数据 #!coding=utf-8 import ...

  2. Python爬虫实战:selenium爬取电商平台商品数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 极客挖掘机 PS:如有需要Python学习资料的小伙伴可以加点击下 ...

  3. 【爬虫】Python爬取电商平台评论完整代码

    利用Ajax爬取淘宝评论,这里完整的补充一下,包括数据存储. 对于Ajax参数的分析,Python爬取平台评论,这篇文章分析过了这里不再重复了. 主要是完善一下代码. import time impo ...

  4. Python爬取电商平台充气娃娃用户评价,看看用户体验是什么样的!

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

  5. Python抓取电商平台数据 / 采集商品评论 / 可视化展示 词云图...

    前言 大家早好.午好.晚好吖 ❤ ~ 我给大家准备了一些资料,包括: 2022最新Python视频教程.Python电子书10个G (涵盖基础.爬虫.数据分析.web开发.机器学习.人工智能.面试题) ...

  6. 获取各大电商平台,item_get_app - 获得淘宝app商品详情原数据API返回数据说明

    今天跟大家分享的是item_get_app - 获得淘宝app商品详情原数据API返回数据说明 item_get_app  获得淘宝商品详情 [查看演示] API测试工具 注册链接(获取Key和sec ...

  7. 淘宝等电商平台API接口评论,item_review-获得商品评论

    item_review-获得商品评论 公共参数 请求地址: https://console.open.onebound.cn/console/?i=Anzexihttps://console.open ...

  8. 如何对一个B2C电商平台数据建模-3-订单

    综述 假定为一个B2C的电商公司 对于一般的零售或者生产公司来说,订单/采购单收入和成本的最大来源.本章主要讨论如何建立一个通用的销售订单和采购单模型 原文见:数据建模3-订单 逻辑模型 订单相关业务 ...

  9. css网页设计实例代码_大型电商平台设计实例:电商平台项目工程、数据库选型、代码库...

    电商平台微服务体系架构 经过一系列的微服务设计, 下面使用一张维导图完整表示这个电商平台的微服务架构设计模型,如图 3-6 示. 这是一个为简单的电商平台微服务架构设计模型,并且使用了粗粒度的微服务划 ...

最新文章

  1. 【拒绝一问就懵】之Activity的启动流程
  2. Solr搜索的排序打分规则探讨
  3. 批量修改历史commit的用户名user.name邮箱user.email
  4. Excel删除区域名
  5. SpringBoot视频教程
  6. 学python买什么书-书单狗 篇一:小白学Python,到底要看多少书?
  7. SQL 宝典(本人总结供学习使用)
  8. Android 自定义View关于measure流程的基本思路整理
  9. Appium系列教程
  10. 状压DP——子集DP
  11. Pr导入ass字幕的解决方案——将ass字幕转为mov视频格式
  12. 数据驱动测试(DDT)入门
  13. 永远无法实现的“诚实“
  14. Room的基本使用(一)
  15. 微服务之springCloud-docker-comsumer(三)
  16. 【微信小程序】组件覆盖 z-index
  17. 练习二:工作日天气预报
  18. ISO 18184纺织品抗病毒活性的测定
  19. 整理CDC捕获消息后发送到kafka各类消息格式
  20. 什么是python中的惰性评估

热门文章

  1. GBase 8a 审计策略配置
  2. python中的rt_TensorRTSamplePython[introductory_parser_samples]
  3. 程序设计基础python3期末考试河南牧业经济学院_河南牧业经济学院
  4. 本地白嫖AI绘画 ,Stable Diffusion 初探!
  5. chatgpt职场办公-excel表格怎么设置类别编号
  6. Windows Live Mail设置(存储,删除,保存)
  7. mongodb gridfs java_MongoDB基于GridFS管理文件
  8. 《童虎学习笔记》11分钟学会MySQL基于时间点的恢复(gtid方式)
  9. 数学小天才游戏c语言,跪求C语言“数学小天才”小游戏 , 窗口将出现一个由数字组成的简单算...
  10. 线性代数之 矩阵的特征值,特征向量,特征分解