前言

嗨喽,大家好呀~这里是爱看美女的茜茜呐

又到了学Python时刻~


环境介绍:

  • python 3.8 越稳定越好

  • pycharm 2021专业版


一、苏宁

模块使用:

  • selenium >>> pip install selenium

    3.141.0 Python当中的模块 操作 浏览器的驱动

  • Chrome浏览器

  • Chromedriver

    浏览器驱动 操作浏览器 让 浏览器帮助我们去执行一些操作

思路:

日常如何打开浏览器查看商品的

代码就如何编写

  1. 用selenium打开一个谷歌浏览器

  2. 用谷歌浏览器 打开网站

  3. 提取商品信息 滚动

代码展示

导入模块

from selenium import webdriver      # 第三方模块 3.141.0   pip install selenium==3.141.0  pip uninstall selenium
import time
import csv

PS:完整源码如有需要的小伙伴可以加下方的群去找管理员免费领取

mode='a': 追加写入数据

encoding='utf-8': 编码方式 excel打开可能会出现中文乱码 换个软件打开 wps 或者换一个编码方式 gbk

newline='': 数据空行

f = open('suning.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.writer(f)

写入表头

csv_writer.writerow(['title', 'price', 'comment', 'store', 'detail_url'])

执行页面滚动的操作

def drop_down():for x in range(1, 12, 2):time.sleep(1)j = x / 9js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f' % jdriver.execute_script(js)
def get_next():divs = driver.find_elements_by_css_selector('.product-box')

针对divs: 所有的商品信息, 进行二次提取

针对每个商品==div

价格 + 名称 + 评论

.text: 提取标签 文本内容

.get_attribute('href'): 提取标签的属性内容

< a class=‘’ href=‘’ sa-data=‘’>

    for div in divs:price = div.find_element_by_css_selector('.def-price').texttitle = div.find_element_by_css_selector('.title-selling-point').textcomment = div.find_element_by_css_selector('.info-evaluate').textstore = div.find_element_by_css_selector('.store-stock').textdetail_url = div.find_element_by_css_selector('.title-selling-point a').get_attribute('href')print(title, price, comment, store, detail_url)csv_writer.writerow([title, price, comment, store, detail_url])

chromedriver.exe 放到 python.exe 同级目录下

谷歌浏览器(正版的) + 谷歌驱动(操作浏览器的一个程序 版本号)

1.用selenium打开一个谷歌浏览器

driver = webdriver.Chrome()
for page in range(0, 50):

2.用谷歌浏览器 打开网站

3.下拉页面

    drop_down()

4.提取数据 代码方式提取

    get_next()

PS:完整源码如有需要的小伙伴可以加下方的群去找管理员免费领取

二、淘

模块使用:

  • requests 模块

代码展示

导入模块

import requests     # 发送请求 第三方模块
import re
import json
import csv
with open('淘宝.csv', encoding='utf-8', mode='a', newline='') as f:csv_writer = csv.writer(f)csv_writer.writerow(['raw_title', 'view_price', 'item_loc', 'view_sales', 'comment_count', 'nick', 'detail_url'])

伪装

  1. 发送请求
    response = requests.get(url=url, headers=headers)
  1. 获取数据
    html_data = response.text
  1. 解析数据
    json_str = re.findall('g_page_config = (.*);', html_data)[0]json_dict = json.loads(json_str)

字典 键值对取值

    auctions = json_dict['mods']['itemlist']['data']['auctions']for auction in auctions:# auction代表每一个商品raw_title = auction['raw_title']view_price = auction['view_price']item_loc = auction['item_loc']try:view_sales = auction['view_sales']      # 销量except:view_sales = 0comment_count = auction['comment_count']nick = auction['nick']detail_url = auction['detail_url']print(raw_title, view_price, item_loc, view_sales, comment_count, nick, detail_url)
  1. 保存数据
        with open('淘宝.csv', encoding='utf-8', mode='a', newline='') as f:csv_writer = csv.writer(f)csv_writer.writerow([raw_title, view_price, item_loc, view_sales, comment_count, nick, detail_url])

三、考拉

模块使用:

  • requests >>> pip install requests

  • parsel >>> pip install parsel

代码展示

导入模块

# import 导入模块
import requests     # 第三方模块 额外安装 内置: 不需要你额外安装
import parsel       # 第三方模块 专门用来html标签数据
import csv          # 表格 内置模块
with open('考拉海购.csv', mode='a', encoding='utf-8', newline='') as f:csv_writer = csv.writer(f)csv_writer.writerow(['title', 'price', 'comments', 'address', 'selfflag', 'img_url', 'href'])
# 字典

1. 发送请求

    response = requests.get(url=url, headers=headers)

<Response [200]>: 请求成功

2. 获取数据

    html_data = response.text

3. 解析数据

html css javascript(JS) 前端网页制作三剑客

html(html源代码): 展示数据内容的

css: 页面变得更加美观的

js: 页面设计的有动态效果的

    select = parsel.Selector(html_data)goods = select.css('.goodswrap.promotion')for good in goods:

详情页链接

        href = good.css('.title::attr(href)').get()

图片链接

        img_url = good.css('.imgtag::attr(src)').get()

价格

        price = good.css('.bigPrice::text').get()

标题

        title = good.css('h2::text').get()title = title.replace('\n', '')

评论数

        comments = good.css('.comments::text').get()

地址

        address = good.css('.proPlace.ellipsis::text').get()

商铺名称

        selfflag = good.css('.selfflag span::text').get()if selfflag == "" or selfflag == None:selfflag = good.css('.selfflag a::text').get()print(title, price, comments, address, selfflag, img_url, href)

文件名称

写入方式 追加写入

编码

        with open('考拉海购.csv', mode='a', encoding='utf-8', newline='') as f:csv_writer = csv.writer(f)csv_writer.writerow([title, price, comments, address, selfflag, img_url, href])

PS:完整源码如有需要的小伙伴可以加下方的群去找管理员免费领取

四、唯

模块使用:

  • requests —> pip install requests

  • csv 内置模块 不需要安装

数据来源分析:

  1. 明确需求: 明确采集数据内容是什么

    • 采集口红商品数据
  2. 通过浏览器自带工具:

    开发者工具, 进行抓包分析 <无论采集那个网站什么数据, 都要抓包分析一下数据来源>

    • 打开开发者工具: F12 或者 鼠标右键点击检查选择 network <网络面板>

    • 刷新网页: 让本网页数据内容, 重新加载一遍

    • 通过搜索功能, 去查询找到, 商品所对应url地址<数据包>

    唯品会商品数据结构:

    整页商品一共是120条数据内容, 分成三组: 前50, 中50, 后20 —> 对应就有三个url地址

    分析这三个url地址, 请求参数变化 —> 改变商品ID —> 分析商品ID在什么地方可以一次性获得到

    想要获取商品数据信息 —> 请求三个链接, 把商品ID切片分成三组 —> 商品ID

代码展示

# 导入数据请求模块
import requests
# 导入格式化输出模块
from pprint import pprint
# 导入csv模块
import csvf = open('口红_1.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['标题','品牌','售价','原价','折扣','色系','妆感','类型','是否套装','商品属性','详情页',
])
csv_writer.writeheader()def Shop(shop_id):

    shop_data = {'app_name': 'shop_pc','app_version': '4.0','warehouse': 'VIP_HZ','fdc_area_id': '104103101','client': 'pc','mobile_platform': '1','province_id': '104103','user_id': '','mars_cid': '1655447722495_62c422a2b0d263186b2d64412108655f','wap_consumer': 'a','productIds': shop_id,'scene': 'search','standby_id': 'nature','extParams': '{"stdSizeVids":"","preheatTipsVer":"3","couponVer":"v2","exclusivePrice":"1","iconSpec":"2x","ic2label":1,"superHot":1,"bigBrand":"1"}','context': '','_': '1669032748487',}json_data = requests.get(url=link, params=shop_data, headers=headers).json()for index in json_data['data']['products']:

            attrs = ','.join([attr['name'] + ':' + attr['value'] for attr in index['attrs']])# 色系:红调,妆感:哑光,类型:唇釉,是否套装:是colour = index['attrs'][0]['value']  # 色系feel = index['attrs'][1]['value']  # 妆感kid = index['attrs'][2]['value']  # 类型Tao = index['attrs'][-1]['value']  # 是否套装dit = {'标题': index['title'],'品牌': index['brandShowName'],'售价': index['price']['salePrice'],'原价': index['price']['marketPrice'],'折扣': index['price']['mixPriceLabel'],'色系': colour,'妆感': feel,'类型': kid,'是否套装': Tao,'商品属性': attrs,'详情页': shop_url,}print(dit)csv_writer.writerow(dit)except:pass
for page in range(0, 1200, 120):

    data = {# 'callback': 'getMerchandiseIds','app_name': 'shop_pc','app_version': '4.0','warehouse': 'VIP_HZ','fdc_area_id': '104103101','client': 'pc','mobile_platform': '1','province_id': '104103','user_id': '','mars_cid': '1655447722495_62c422a2b0d263186b2d64412108655f','wap_consumer': 'a','standby_id': 'nature','keyword': '口红','lv3CatIds': '','lv2CatIds': '','lv1CatIds': '','brandStoreSns': '','props': '','priceMin': '','priceMax': '','vipService': '','sort': '0','pageOffset': '0','channelId': '1','gPlatform': 'PC','batchSize': '120','_': '1669032748485',}

    response = requests.get(url=url, params=data, headers=headers)products = [i['pid'] for i in response.json()['data']['products']]product_id_1 = ','.join(products[:50])  # 0-49 顾头不顾尾  把列表合并为字符串  str.join(list)product_id_2 = ','.join(products[50:100])  # 50-99 顾头不顾尾product_id_3 = ','.join(products[100:])  # 100-最后 顾头不顾尾Shop(shop_id=product_id_1)Shop(shop_id=product_id_2)Shop(shop_id=product_id_3)

尾语

感谢你观看我的文章呐~本次航班到这里就结束啦

python带你采集淘/苏/唯/考四大电商平台商品数据相关推荐

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

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

  2. 各大电商平台API数据,包括淘宝天猫的api明细接口

    item_get - 获得淘宝商品详情 item_fee - 获得淘宝商品快递费用 item_password - 获得淘口令真实 item_search - 按关键字搜索淘宝商品 item_sear ...

  3. 各大电商平台API数据,淘宝天猫的api明细接口

    item_get - 获得淘宝商品详情 item_fee - 获得淘宝商品快递费用 item_password - 获得淘口令真实 item_search - 按关键字搜索淘宝商品 item_sear ...

  4. 如何设计一个优雅健壮的Android WebView?(上) 基于考拉电商平台的WebView实践

    前言 Android应用层的开发有几大模块,其中WebView是最重要的模块之一.网上能够搜索到的WebView资料可谓寥寥,Github上的开源项目也不是很多,更别提有一个现成封装好的WebView ...

  5. 《Python数据分析与挖掘实战》第15章 ——电商产品评论数据情感分析(LED)

    文章目录 1.挖掘背景与目标 2.2 数据探索与预处理 2.1 数据筛选 2.2 数据去重 2.3 删除前缀评分 2.4 jieba分词 3 基于LDA 模型的主题分析 4.权重 5.如何在主题空间比 ...

  6. 基于python的django框架数码电子产品销售交易商城电商平台设计

    目录 摘 要 I 目录 III 第一章 绪论 1 1.1 课题研究背景及意义 1 1.2 国内外研究现状 2 1.3 本文的主要工作 3 第二章 技术选型 4 2.1 Python 4 2.2 Dja ...

  7. 淘品优选积分商城电商平台有哪些功能?

    新冠肺炎疫情对消费者的购物习惯产生了深远的影响,虽然大众早就形成了线上购物的习惯,但经过此次疫情,线上购物被更深的发掘,消费者更多的追求线上消费的体验感,为消费者提供更大实惠的淘品优选迅速成长. 疫情 ...

  8. Python制作某电商平台商品竞拍脚本,能自动定时、抢拍、购买!吊不吊?

    前言 在京东 淘宝中有很多特价商品,但是有些商品属于限量购买,需要抢拍.有很多黄牛通过非法脚本获取大量限购商品订单来获取利益. 那么像这种抢拍软件是如何做到的呢 今天就带领大家使用selenium 自 ...

  9. 各大电商平台商品详情api接口,淘宝API、拼多多API、1688API,爬虫程序数据获取,PHP示例说明

    以下是行业内了解到的一些情况,本帖只展示部分代码 以淘宝为例 item_get-获得淘宝产品详情      测试 Oneboun测试 名称 类型 必须 描述 key String 是 调用key(必须 ...

最新文章

  1. java.lang.ThreadLocal实现原理和源码分析
  2. TSQL:判定一段数组连续的数字段有多少的方案
  3. 一个老程序员的心里话(转载)
  4. .net 读word中文字方法
  5. js基础练习---图片无缝左右滚动效果(主要以复制删除为主)
  6. 【读书笔记】编写高质量的代码Web前端开发修炼之道——曹刘阳
  7. 查看Jar包中Class类的编译环境jdk版本
  8. 深度特征融合--add和concat【转载】
  9. 纯新手DSP编程--5.31--硬件中断管理
  10. VS2010中的单元测试【转载】
  11. python中单词个数_python 统计单词个数
  12. EmmyLua 断点调试、xlua断点调试
  13. C# 将raw格式的二进制灰度图像转为正常位图格式
  14. mt2503 [ShapeEngine]泰语音标字符发生偏移
  15. 关于宏文档开启宏后还是不能正常使用问题
  16. 百度地图自定义坐标标识覆盖物,随地图缩放偏移解决办法
  17. CAD图导入SU中一次成面的方法
  18. [转]真核生物预测软件
  19. 姚重华曾获得过计算机领域最高的奖项图灵奖,微软研究员泰克获计算领域最高奖项图灵奖...
  20. Qt QMenuBar QMenu和QAction

热门文章

  1. linux 6.3 vnc安装包,CentOS-6.3安装vnc
  2. 成功的关键,不是情商或智商,而是毅力
  3. 如何使用淘宝镜像以及安装cnpm
  4. 用10086客服热线理解Java高级多线程之线程池
  5. ASCⅡ谢尔宾斯基地毯
  6. 4:Vim编辑器与Shell命令脚本
  7. 洛谷月赛:最后的狂欢 汽车拉力比赛
  8. sql如何根据时间查询最新的几条数据?
  9. K8S篇-ubuntu跳板机安装kubectl
  10. 化工计算机图形与数据处理知识内容王水,化工计算数据与图形化处理excel线性回归.ppt...