从eBay抓取数据如何助力您的网店
eBay 是美国第二大在线电商平台,占据了19.7%的市场份额。凭借1.82亿活跃用户,eBay 是我们进行价格情报分析的最佳平台之一。
在这个示例中,我们将仅抓取产品的价格,但eBay堪称数据宝库。您还可以抓取评论区,提取负面关键词,进行情感分析,从而找出顾客对所购产品不满的原因。
您还可以分析“浏览过此商品的顾客还浏览了”这一板块,以此了解顾客的需求。您可以利用这些信息为店铺添加新商品,或推出包含更多商品的折扣套装。顾客一定会喜欢这些!
如何使用 WebScrapingAPI 抓取 eBay 数据
网络爬虫面临的最大难题之一,就是如何避免被目标网站封禁。幸运的是,只要使用合适的工具,您就无需为此担忧。在这种情况下,WebScrapingAPI是最佳解决方案,原因很简单,有三点:
- 我们的免费套餐每月提供 1,000 次请求,无需绑定银行卡。
- 该 API 拥有一个包含 1 亿多个轮换 IP 的代理池,可确保请求互不重叠。
- 只需一行代码,即可与他们的 API 集成。
你可能会好奇,为什么我们要使用爬虫API,而不是自己开发一个。原因很简单:从头开始开发一个爬虫工具可能需要几周时间。
最大的问题不在于开发工具本身,而在于对其进行微调,以免网站将其误判为机器人。
应用程序接口访问密钥和身份验证
访问WebScrapingAPI 网站并注册一个账户。您将获得一个 API 密钥和 1,000 次免费请求。
安装依赖项
启动该项目
创建一个名为 index.js 的文件,并将以下代码粘贴进去:
const cheerio = require('cheerio');
const axios = require('axios');
const api_key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
const product_url = 'https://www.ebay.com/itm/174620280276?epid=4444&hash=item28a82e05d4:g:UpMAAOSwfY5gYDr6';
const api_url = `https://api.webscrapingapi.com/v1?api_key=${api_key}&url=${encodeURIComponent(product_url)}`;
const hour_in_ms = 1000 * 60 * 60;
let product_price = null;
const check_price = async () => {
// Scrape the document
// Parse the document
// Process the results
// Check for any price change in one hour
setTimeout(check_price, hour_in_ms)
}
(async () => check_price())()
如您所见,我们使用了一个带有超时设置的递归函数,每小时抓取一次产品页面,并检查价格是否有变动。
抓取页面
请用以下代码替换/刮取该文档:
let response;
try {
response = await axios.get(api_url);
} catch (error) {
console.log(error);
process.exit();
}
const $ = cheerio.load(response.data);
该代码使用 WebScrapingAPI 抓取 eBay 商品页面,并将结果转换为一个 cheerio 实例。
检查源代码
我们抓取了整个产品页面,但只需要产品价格。我们可以使用 cheerio 实例来获取价格值。产品价格的选择器是#mainContent [itemprop="price"]。
解析 HTML
将 // 替换为以下代码:
let price = $('#mainContent [itemprop="price"]').html()处理结果
价格以以下格式呈现:货币符号 金额。我们需要提取其中的金额部分。请用以下代码替换// 处理结果:
price = parseInt(price
.split(' ')[1]
.replace('$', '')
.replace(' ', '')
.split(',').join('')
.split('.')[0])
if(!product_price) {
console.log(`Initial product price:`, price)
} else {
if(product_price !== price) {
console.log('New price for product:', price)
}
}
product_price = price
该代码将通过执行以下操作来清理价格:
- 移除货币(美元)
- 删除货币符号 ($)
- 删除所有空格 ( )
- 从数字中删除逗号
- 去除小数
解析完价格后,我们会记录初始价格,或者如果价格在两次抓取之间发生了变化,则记录新价格。
结论
只需几行代码,再加上WebScrapingAPI这样一款出色的工具,我们就成功编写了一个脚本,可以从eBay获取任意商品的价格。以此为基础,可能性无穷无尽。你可以进一步优化这个脚本,实现以下改进:
- 抓取产品标题以便更轻松地进行价格分类
- 抓取多款商品并比较价格
- 抓取另一个eBay网站(例如ebay.de或ebay.ca),并比较同一产品的价格
- 反其道而行之,抓取亚马逊的产品页面,并对比两家网站上同一款产品的价格
- 实现电子邮件通知;建议使用nodemailer来实现这一功能
- 实现 Slack 通知;您可以使用此库来完成此任务
这款针对实际应用场景的解决方案最棒的一点在于,您无需花费金钱或宝贵的时间即可完成所有操作。这是因为WebScrapingAPI 提供为期两周的免费试用,让您能够免费使用其所有功能!




