写点什么

爬取跨境电商 AI 选品分析

作者:Yan-英杰
  • 2025-03-05
    安徽
  • 本文字数:3165 字

    阅读完需:约 10 分钟

引言

随着 DeepSeek 的流行,越来越多的用户开始尝试将 AI 工具融入到日常工作当中,借助 AI 的强大功能提高工作效率。最近又掀起了一波企业出海的小高潮,那么如果是做跨境电商业务,怎么将 AI 融入工作流中呢?在做跨境电商的时候由于购物洗个和文化背景的不同,需要老板谨慎选择主打的产品。这一工作往往需要完成大量的市场调研,并且变化很快。所以我们不妨将这一工作交给 AI 来完成,以此节约人力物力。不过目前的 AI 没有办法自行获取数据,所以我们还需要使用爬虫来获取原始数据,将它交给 AI 进行分析。


然而,数据采集的过程并非一帆风顺。由于网络原因,海外网站有时会出现连接缓慢,甚至无法连接的情况,给数据采集带来了极大的挑战。而且,为了保护网站免受恶意攻击或过度抓取,许多网站设置了反爬虫机制。一旦发现同一 IP 地址频繁访问,网站通常会立即切断连接,甚至限制访问。为了解决这一问题,跨境电商需要配置动态代理。通过合理的配置和使用代理,跨境电商可以顺利绕过反爬虫机制,实现高效的数据采集。接下来,让我们通过一个实战应用,完整了解这一过程。

购买动态住宅 IP 代理

代理服务商通常提供两种类型的代理:住宅 IP 和运营商 IP。住宅 IP 能够模拟真实用户的网络访问,减少被封锁的风险,而运营商 IP 则来自大型互联网服务提供商,具有更高的稳定性。这次我们选择ipcola家的代理服务。需要注意的是,流量包有效期为 30 天,所以请大家按需购买。购买完毕后直接切换到 API mode 页面,在这里我们可以生成获取 IP 地址的链接。首先一定要将自己本机 IP 添加到白名单。在下面可以选择 IP 地址的地理信息、生存时间、单次生成的数量和格式。这里我们只将单次生成数量改为 1,其他保持默认。点击生成即可获得链接。

将链接复制到浏览器可以看到会返回一个文本格式的 IP。我们在使用的时候需要将这个文本数据进行切割,再集成进爬虫即可。

分析页面结构

接下来我们到目标网站分析网页结构。这次的目标是亚马逊畅销榜的电子产品排行榜。我们将依照榜单顺序每件商品的名称、售价、评分和链接。

打开开发者工具,可以发现商品是 p13n-gridRow 容器中的不同 div,其中标题和链接在 zg-grid-general-faceout 容器下,其他内容分别在不同的 a-row 中。

分析完网页结构,我们还需要提取我们的 ua 和 cookie 信息。还是在开发者工具,网络这一栏中找一个流量包,在请求头的部分很容易就可以找到。

编写爬虫软件程序

接下来我们来编写爬虫程序。首先定义一下需要用到的参数。定义一个 api 记录代理服务器的 API 地址,用于获取代理 IP,方便后期更换链接。定义一个 headers 记录 HTTP 请求头,模拟浏览器访问,防止被网站封禁。这里需要将刚才获取到的 ua 保存进来。再定义一个 counter 用于记录商品的排名。

api = 'https://api.ipcola.com/api/proxy/get_proxy_list?token=换成自己的&num=1&type=residential&return_type=txt&lb=1'headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:135.0) Gecko/20100101 Firefox/135.0"}counter = 0
复制代码

之后在 get_proxy 函数中,发送 GET 请求到代理服务器 API,获取一个代理 IP。然后返回一个字典,包含 HTTP 和 HTTPS 代理地址。

def get_proxy(api):    res = requests.get(api) return { "http": res.text.strip(), 'https': res.text.strip()}
复制代码

然后定义 get_page 函数获取网页数据。首先使用代理 IP 发送 GET 请求到亚马逊电子产品畅销页面,然后返回页面的 HTML 内容。

def get_page(proxy):    res = requests.get('http://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/ref=zg_bs_nav_electronics_0',                       headers=headers, proxies=proxy) return res.text
复制代码

接下来使用 parse_page 函数解析页面数据。首先使用 lxml 解析 HTML 内容,然后利用 XPath 提取商品的排名、链接、标题、评分和价格,最后将提取的信息存储到 results 列表中。

def parse_page(page): global counter    tree = etree.HTML(page)    items = tree.xpath('//div[@class="p13n-gridRow"]/div')    results = [] for item in items:        rows = item.xpath('.//div[@class="zg-grid-general-faceout"]/span/div/div/div')        link = rows.xpath('./a/@href')        title = rows.xpath('./a/span/div/text')        ratings = rows.xpath('./div[1]//i/span/text')        price = rows.xpath('./div[1]/div/div/a/div/span/span/text')        results.append({'rank': counter, "link": link, "title": title, "ratings": ratings, "price": price})        counter += 1 return results
复制代码

最后我们定义一个主函数来控制流程。首先要获取代理 IP,然后使用代理 IP 获取亚马逊页面内容。接着,解析页面内容并提取商品信息,之后将结果写入文件 r.txt。

def main():    proxy = get_proxy(api)    page = get_page(proxy)    goods = parse_page(page) with open("r.txt", 'w') as f:        f.write(str(goods))
复制代码

完整代码如下:

import requestsfrom lxml import etreeapi = 'https://api.ipcola.com/api/proxy/get_proxy_list?token=oecdrmaakstrzwnx695422aca68ce5e6&num=1&type=residential&return_type=txt&lb=1'headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:135.0) Gecko/20100101 Firefox/135.0"}counter = 0def get_proxy(api):    res = requests.get(api) return { "http": res.text.strip(), 'https': res.text.strip()}def get_page(proxy):    res = requests.get('http://www.amazon.com/Best-Sellers-Electronics/zgbs/electronics/ref=zg_bs_nav_electronics_0',                       headers=headers, proxies=proxy) return res.textdef parse_page(page): global counter    tree = etree.HTML(page)    items = tree.xpath('//div[@class="p13n-gridRow"]/div')    results = [] for item in items:        rows = item.xpath('.//div[@class="zg-grid-general-faceout"]/span/div/div/div')        link = rows.xpath('./a/@href')        title = rows.xpath('./a/span/div/text')        ratings = rows.xpath('./div[1]//i/span/text')        price = rows.xpath('./div[1]/div/div/a/div/span/span/text')        results.append({'rank': counter, "link": link, "title": title, "ratings": ratings, "price": price})        counter += 1 return resultsdef main():    proxy = get_proxy(api)    page = get_page(proxy)    goods = parse_page(page) with open("r.txt", 'w') as f:        f.write(str(goods))if __name__ == "__main__":    main()
复制代码

运行之后得到商品数据。

AI 选品

接下来我们将商品数据上传至 AI,让 AI 为我们提供选品信息。

可以看到有了详细的数据,AI 就能很轻松的就为我们提供了一套方案。

总结

在本文中,我们一起经历了一次跨境电商选品分析的实战过程。我们首先从选购动态住宅 IP 代理入手,通过这种方式优化网络连接,同时巧妙地隐藏爬虫的特性,避免被目标网站检测到。接着,我们深入分析页面结构,熟悉并掌握了提取页面元素的方法,这是获取有效数据的关键一步。之后,我们动手编写爬虫程序,按照既定的步骤依次执行获取代理、获取页面、提取数据以及保存数据的操作。最后,我们将采集到的数据提交给 AI 进行选品分析,借助 AI 的强大能力,为市场决策提供了有力支持。这种结合了现代技术手段的方法,不仅极大地提高了数据采集的效率,还通过 AI 分析为我们的决策提供了科学依据。随着技术的不断进步,AI 与爬虫的结合将在跨境电商领域发挥越来越重要的作用,帮助我们更好地应对全球市场的复杂挑战。如果你对这个过程感兴趣,不妨亲自尝试一下,相信你会从中收获不少宝贵的经验和知识。

用户头像

Yan-英杰

关注

还未添加个人签名 2023-09-01 加入

还未添加个人简介

评论

发布
暂无评论
爬取跨境电商AI选品分析_Python_Yan-英杰_InfoQ写作社区