Bootstrap

用python采集四大电商平台商品数据进行对比

前言

大家早好、午好、晚好吖 ❤ ~


环境介绍:

  • python 3.8 越稳定越好

  • pycharm 2021专业版


一、考拉

模块使用:

  • 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: 页面设计的有动态效果的

数据, 提取

.goodswrap.promotion

    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='') 
;