开发
成果示例
把园艺工具供应商的商品目录采集到 Excel
结果示例
| 商品编号 | 名称 | 价格 | 有货 | 重量 | 图片 |
|---|---|---|---|---|---|
| GT-1042 | 修枝剪,20 mm | 18.90 | 是 | 0.24 kg | …/gt-1042.jpg |
| GT-1187 | 折叠锯,210 mm | 24.50 | 是 | 0.31 kg | …/gt-1187.jpg |
| GT-2210 | 绿篱剪,波浪刃 | 39.00 | 否 | 1.10 kg | …/gt-2210.jpg |
| GT-3305 | 手铲,不锈钢 | 9.80 | 是 | 0.18 kg | …/gt-3305.jpg |
| GT-4120 | 园艺水管 25 m,1/2" | 42.00 | 是 | 2.90 kg | …/gt-4120.jpg |
示例文件中有 1,236 个商品,来自 52 个列表页。
部分代码
def product_links(list_url: str) -> Iterator[str]:
"""从列表的每一页获取商品页面链接,沿“下一页”继续翻页。"""
url: str | None = list_url
while url:
page = fetch(url)
for card in page.select("div.product-card a.title"):
yield urljoin(url, card["href"])
next_link = page.select_one("a.pagination-next")
url = urljoin(url, next_link["href"]) if next_link else None
def fetch(url: str) -> BeautifulSoup:
"""以礼貌的节奏读取一个公开页面:请求之间有间隔,出错时重试几次。"""
for attempt in range(3):
time.sleep(settings.delay_seconds)
response = session.get(url, timeout=30)
if response.status_code == 200:
return BeautifulSoup(response.text, "html.parser")
log.warning("%s 返回了 %s,第 %d 次尝试,共 3 次", url, response.status_code, attempt + 1)
raise ScraperError(f"{url} 尝试 3 次后仍无法打开")
**文件:**一个 ZIP 压缩包,内含 scraper.py、settings.ini(起始页面、请求间隔、文件名)、requirements.txt 以及说明如何安装和运行的 README。它只读取公开页面,每 2 秒读取一页,并会先查看网站的 robots.txt。客户在自己的电脑上运行。
**客户:**一家转售某供应商工具的园艺网店;供应商在网站上有公开的商品目录,但没有价目表文件。 **任务:**逐页读取目录的列表页,打开每个商品页面,把商品编号、名称、价格、库存、重量和主图链接保存到 Excel,每周比较一次价格。
客户及所有信息均为虚构。
服务介绍
当供应商只在公开网站上展示商品、却不提供文件时,这个采集程序会把商品目录复制到一张您店铺可以导入的表格中:名称、编码、价格、描述、参数、分类和图片链接,并把图片保存到一个文件夹。请发来供应商的网站、一个分类页面和一个商品页面的链接、一两个从浏览器保存的页面,以及您店铺的导入模板,例如 Shopify 或 WooCommerce 的 CSV,以便各列与之对应。您会收到附设置文件和 README 的 Python 代码,在自己的电脑上运行。请只使用供应商允许您使用的图片和文字。它以礼貌的节奏读取公开页面,从不登录,不绕过验证码或任何防护,也不收集个人数据。网站条款是否允许由您判断;网站日后改版时,需要更新程序。
服务内容
- 您将获得一个 ZIP 压缩包,内含 Python 代码、设置文件和附分步说明的 README;订单页面上也能查看代码。
- 适合导入的列列的顺序和名称与您店铺的导入文件一致
- 图片随时可上传图片链接放在一列中,文件按商品编码命名
- 价格按页面显示保存供应商的价格;您的加价在表格中自行添加
- 礼貌的节奏页面之间的间隔,在设置中设定
- 通俗易懂的说明一步步告诉您要安装什么、如何运行
服务流程
- 1商品目录您提供供应商的页面和您的导入模板
- 2采集程序我们编写代码和运行说明
- 3测试导入您运行程序,把前几行导入您的店铺
- 4修改您在套餐范围内提出修改,如有报错信息请一并发来
需要您提供的信息
供应商的网站:一个分类页面和一个商品页面的链接,以及大约有多少个商品。您店铺的导入模板,或您几个商品的导出示例,以便各列对应。您需要的字段,例如名称、编码、价格、描述、参数、分类、图片。一两个从浏览器保存的供应商页面(文件 > 网页另存为)。图片文件如何命名。以及您确认供应商允许您使用其图片和文字。
我们会询问您:
- 哪个供应商网站,哪些页面?
- 您的店铺及其导入文件
- 大约多少个商品?
- 图片
套餐对比
付款保障
您在下单时付款,但款项仅在您验收后才会结算。
- 固定价格付款后套餐价格不会变动。
- 款项先冻结付款时,这笔金额只是被冻结。您验收后,款项才会结算给平台。
- 交付前检查每份成果在送达您之前都会经过质量检查,验收前您可以在订单页面查看。
- 免费修改在需求说明范围内,您可以在套餐允许的次数内提出修改。
- 3 天后自动验收如果交付后 3 天内您既未验收也未提出修改,工作将自动验收。如果您在交付后于订单聊天中留言,订单将暂停自动验收;我们回复后,可能会重新开始计算 3 天,并会在聊天中告知您。
- 返工或全额退款如果成果与您的需求说明不符且修改后仍未解决,或工作耗时超过交付期限的两倍,请在订单聊天中留言:我们将为您返工或全额退款。
问题与解答
文件能直接导入我的店铺吗?
各列按照您发来的模板排列,所以大多数情况下可以。我们是对照您的模板检查文件,而不是在您的店铺里检查,所以请先用前几行做一次小规模导入,再导入全部。
我可以使用供应商的图片和描述吗?
只有在供应商允许时才可以:它们属于其所有者,获得许可由您负责。采集程序只保存您可以使用的图片。
能读取供应商登录后才显示的经销价吗?
不能。它从不登录,所以账户中的经销价或批发价无法获取。请向供应商索要价格文件;采集程序仍会收集公开目录中的其余内容。
能从 Amazon、Google 或社交网络店铺复制商品目录吗?
不能。它们的条款禁止这样做;LinkedIn 和其他社交网络也一样。请使用该服务的官方导出功能,或向卖家索要文件。
如果供应商改版了网站怎么办?
采集程序是按页面现在的样子编写的。日后改版需要更新,这属于新订单。
没有找到答案?


