低代码爬虫利器结合Python Selenium,自动采集商品数据

说实话,现在跨境电商竞争之激烈,获客之难,早已不是搭个台子就能唱戏的阶段,需要各种竞品数据、用户评价数据监测分析,及时掌握哪些产品卖的好,卖的好的产品标题怎么写、用户情感反馈等等,相当的繁琐。

这个过程看似简单,但仅是数据采集就难倒一大批人,因为像Amazon、Tiktok、eBay、Shopee等反爬机制非常严格,已经从传统的IP识别升级到​​行为分析​​和​​动态对抗,​​像是浏览器指纹、验证码(CAPTCHA)、动态加密、异步加载等,一般简单的爬虫技术基本不可能抓取到稳定的电商数据。


所以开发者们需要进行技术伪装、动态IP设置和自动化工具等方法,去测试和调整不同平台的规则,但又必须要保证在法律允许的范围之内进行数据采集。

什么是法律允许的范围呢?首先只能抓取互联网上公开的非隐私数据,不要去破解后台加密数据,也不可以获取用户隐私数据。其次只能在网站合理的承受范围发送http请求,不能对目标网站造成破坏。否则,可能会面临法律风险。

这次我准备结合Python selenium + bright data的组合来采集某跨境电商网站上的智能手机商品数据,并结合AI搭建一个电商商品分析系统,用于监测竞品数据。

https://get.brightdata.com/webscra

当然这个仅供参考学习使用。

1、bright data数据采集技术解读

bright data提供包含网页抓取API、网页解锁器API、网页抓取浏览器、SERP API等在内的自动化产品。这些产品能解决什么问题呢?像你在爬虫过程中遇到的人机验证、验证码、动态页面、浏览器指纹验证等问题,这些都有针对性的解决技术。

就拿这次我用的Scraping Browser来举例,Scraping Browser是数据采集浏览器的意思,它是bright data提供的云浏览器,是有图形界面的有头浏览器,托管在亮数据平台上。它的工作原理和普通自动化浏览器一样,能通过Selenium、Playwright等自动化API来操作采集数据,适合交互频繁的动态网页,执行各种点击、加载等操作。

但是Scraping Browser封装了代理和网站解锁能力,能进行各种高级爬虫操作,比如:CAPTCHA 识别、浏览器指纹、自动重试、请求头选择、处理 cookies、JavaScript 渲染等,对于反爬机制复杂的网站非常适用。

2、使用Scraping Browser采集商品数据

首先这次测试的采集目标是某跨境电商网站的智能手机商品数据,基于Scraping Browser服务,使用Python Selenium库来请求和解析数据,Selenium是主流的浏览器自动化工具,也支持其API接口,操作起来比较方便。

第一步:创建通道

打开bright data,然后打开后台控制面板界面,找到“浏览器API“,创建新的通道。

第二步:设置“浏览器API“相关参数

给新通道起一个任务名称,比如ecommerce_task

接着勾选CAPTCHA 解决器,它能帮你自动识别和解锁各种验证码,非常省心。

最后点击添加,即创建了一个新通道ecommerce_task。

新通道会有用户名、密码,以及Selenium对应的端口,要记住和保密。

在操作平台里,你能找示例代码,比如这次用到的Selenium,我们就直接改改示例请求代码用于抓取商品数据。

第三步:编写脚本,采集数据

这次直接抓取某跨境电商网站搜索页的智能手机商品,搜索关键词为:smart phone,采集的字段有:商品名称(name)、商品价格(price)、商品来源地(location),因为是示例爬虫,所以只选重要的的几个字段。

https://get.brightdata.com/webscra

采集好数据后,保存到本地CSV文件中,用于后续分析。

示例代码如下:

# 本案例仅用于技术研究,遵守《网络安全法》第27条与目标网站robots.txt协议,采样频率控制在5次/分钟以下,单日采集量不超过1000条

from selenium.webdriver import Remote, ChromeOptions
from selenium.webdriver.chromium.remote_connection import ChromiumRemoteConnection
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
import csv

# ==== 请替换为你的 Bright Data 授权信息 ====
AUTH = '你的账号接口地址'
SBR_WEBDRIVER = f'https://{AUTH}@brd.superproxy.io:9515'

def main():
    print('正在连接Scraping Browser...')
    # 建立远程连接
    sbr_connection = ChromiumRemoteConnection(SBR_WEBDRIVER, 'goog', 'chrome')
    opts = ChromeOptions()
    # 可选:开启无头模式
    # opts.add_argument('--headless')
    with Remote(sbr_connection, options=opts) as driver:
        print('已连接! 导航到Shopee...')
        # 1)打开 Shopee 手机搜索页
        url = 'https://shopee.sg/search?keyword=smart%20phone'
        driver.get(url)

        # 2)等待商品列表渲染完成:等待每个“商品卡片”出现
        wait = WebDriverWait(driver, 80)
        item_selector = 'li[data-sqe="item"]'
        wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, item_selector)))

        # 3)滚动以加载更多(如果需要懒加载,可根据实际情况调整)
        driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
        time.sleep(2)

        # 4)再一次抓取商品卡片
        items = driver.find_elements(By.CSS_SELECTOR, item_selector)
        print(f'定位到 {len(items)} 个商品卡片,开始抓取…')

        # 5)准备存储结果
        results = []

        for itm in items:
            try:
                # 商品名称
                name = itm.find_element(By.CSS_SELECTOR, 'div.line-clamp-2').text.strip()
                # 价格(带币种符号)
                price = itm.find_element(By.CSS_SELECTOR, 'span.font-medium.text-base\\/5').text.strip()
                # 商品来源地
                location = itm.find_element(By.CSS_SELECTOR, 'span.ml-\[3px\]').text.strip()
            except Exception as e:
                # 若某个字段缺失则跳过
                print(f'⚠️ 解析失败:{e}')
                continue

            results.append({
                'name': name,
                'price': price,
                'location': location
            })

        # 6)输出到 CSV
        out_file = 'shopee_mobile_phones.csv'
        keys = ['name', 'price', 'location']
        with open(out_file, 'w', newline='', encoding='utf-8-sig') as f:
            writer = csv.DictWriter(f, fieldnames=keys)
            writer.writeheader()
            for row in results:
                writer.writerow(row)

        print(f'完成:共抓取 {len(results)} 条,已保存至 {out_file}')

if __name__ == '__main__':
    main()

最终采集数据保存到CSV文件中,部分数据如下:

注:name代表商品名称,price是售价(新加坡元)、location是来源地。

该跨境电商网站是对爬虫监测比较严的平台,会要求各种验证,Scraping Browser都能轻松解锁,而且搜索结果页异步加载,部分操作(如翻页)需模拟用户点击,也能一并解决。

3、使用AI搭建跨境电商监测分析系统

采集好商品数据后,接下来把活交给AI,既可以让它分析商品数据给出合理化建议,也可以搭建商品监测分析系统,将采集和数据分析集成到一个平台里。

比如某跨境电商网站手机商品名称的分析优化,把刚爬取的csv数据提交给AI,输入提示:

附件是手机商品数据,包含名称、价格、来源地,请你分析商品名称内容、结构、形式、优化建议等等,输出分析报告。

AI会自动出具一份分析报告。

有核心要素提取:


也有问题和优化建议:

可以看到AI给出的建议非常详细且具有可参考性。

咱们再将这种功能集成到平台里,让AI设计一个采集和分析数据于一体的商品分析平台。

功能如下:

  • 1、数据采集模块,集成bright data数据自动化采集功能,自动从shopee采集数据
  • 2、竞品动态跟踪模块,自动跟踪某几个核心竞品商品的信息,比如销量、价格、标题等
  • 3、价格趋势预测模块,自动监测某品类价格走势,基于AI智能化定义价格
  • 4、商品名称优化模块,自动监测分析热门商品名称,基于AI分析优化结果

基于采集到的智能手机商品数据示例,实现的效果如下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朱卫军 AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值