网站数据采集开发与定制

一个用 Python 编写的网站采集程序,把页面上的公开数据收集到 CSV 或 Excel:价格、商品目录、信息列表

通常15分钟内完成包含修改质量检查
套餐
付款保障详情
  • 套餐内的修改免费。
  • 如果交付后 3 天内您未作回应,工作将自动验收。

付款时款项会被冻结,仅在您验收后结算。

一个用 Python 编写的网站采集程序,把页面上的公开数据收集到 CSV 或 Excel:价格、商品目录、信息列表

成果示例

标准版套餐示例

把园艺工具供应商的商品目录采集到 Excel

结果示例

商品编号名称价格有货重量图片
GT-1042修枝剪,20 mm18.90是0.24 kg…/gt-1042.jpg
GT-1187折叠锯,210 mm24.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,每周比较一次价格。

客户及所有信息均为虚构。

服务介绍

采集程序收集您在公开网页上能看到的数据,并保存为表格:商品价格和库存、供您店铺使用的供应商商品目录、信息列表、招聘信息、活动或文章。请告诉我们网站和页面,列出您需要的字段(名称、价格、链接、图片等),并发来一两个从浏览器保存的此类页面(文件 > 网页另存为)或其截图。我们根据这些页面的真实结构用 Python 编写采集程序,结果保存为 CSV、Excel 或 JSON。您会收到一个压缩包,内含代码、写有地址和页面间隔的设置文件,以及说明如何安装 Python 并运行的 README。采集程序在您自己的电脑上运行,所以数据直接到您手中;我们不替您采集,也不保存数据。它只以礼貌的节奏读取公开页面,从不登录,不绕过验证码或其他防护,也不收集姓名、邮箱或电话号码等个人数据。网站改版时,采集程序可能需要更新。根据网站条款您是否可以采集和使用其数据,由您负责。

服务内容

  • 您将获得一个 ZIP 压缩包,内含 Python 代码、设置文件和附分步说明的 README;订单页面上也能查看代码。
  • 您的字段,您的表格各列按您需要的顺序排列
  • 基于真实页面编写按您发来的页面结构编写
  • 礼貌的节奏页面之间的间隔,在设置中设定
  • 在您的电脑上运行Windows、macOS 或 Linux,需安装 Python
  • 通俗易懂的说明一步步告诉您要安装什么、如何运行

服务流程

  1. 1
    页面数您提供网站、字段和一两个保存好的页面
  2. 2
    采集程序我们编写代码和运行说明
  3. 3
    运行您运行程序,并检查表格的前几行
  4. 4
    修改您在套餐范围内提出修改,如有报错信息请一并发来

需要您提供的信息

网站和具体页面:一个列表页面和一个详情页面的链接,以及大约有多少个页面。您需要的字段,按您表格的顺序排列,每个字段附一个示例。一两个从浏览器另存为 HTML 的此类页面(文件 > 网页另存为)或截图,让采集程序按其真实结构编写。您需要的结果文件(CSV、Excel 或 JSON)以及您将在哪里运行它。

我们会询问您:

  • 哪个网站,哪些页面?
  • 您需要的字段
  • 大约多少个页面?
  • 结果文件
  • 还有其他要求吗

套餐对比

套餐基础版单一页面类型采集US$25标准版列表页和详情页US$49高级版多个网站或页面类型US$89
交付期限1 天2 天3 天
修改次数123
网站数11最多 3 个
页面类型数12 种(列表页和详情页)最多 3 个
字段数最多 10最多 25 个每种最多 25 个
列表翻页读取否是是
结果文件CSVExcel 或 CSVExcel、CSV 或 JSON
去除重复,可从中断处继续否否是
下单 基础版下单 标准版下单 高级版

付款保障

您在下单时付款,但款项仅在您验收后才会结算。

  • 固定价格付款后套餐价格不会变动。
  • 款项先冻结付款时,这笔金额只是被冻结。您验收后,款项才会结算给平台。
  • 交付前检查每份成果在送达您之前都会经过质量检查,验收前您可以在订单页面查看。
  • 免费修改在需求说明范围内,您可以在套餐允许的次数内提出修改。
  • 3 天后自动验收如果交付后 3 天内您既未验收也未提出修改,工作将自动验收。如果您在交付后于订单聊天中留言,订单将暂停自动验收;我们回复后,可能会重新开始计算 3 天,并会在聊天中告知您。
  • 返工或全额退款如果成果与您的需求说明不符且修改后仍未解决,或工作耗时超过交付期限的两倍,请在订单聊天中留言:我们将为您返工或全额退款。
运作方式 →

问题与解答

采集网站数据合法吗?

在很多情况下,采集公开数据是允许的,但各网站的使用条款和各国的数据法律不同,所以是否可以采集和使用这些数据,由您判断。采集程序从不登录、不绕过防护,也不收集个人数据,这让它保持在安全的一边。

你们会替我采集数据吗?

不会。您拿到采集程序后自己运行,所以结果直接到您手中,需要最新数据时可以随时再次运行。

如果网站改版或屏蔽了采集程序怎么办?

采集程序是按页面现在的样子编写的。如果网站日后改版,采集程序需要更新,这属于新订单。它以礼貌的节奏读取,但网站仍可能限制访问;它不会绕过这类限制。

能采集 Amazon、Google 或社交网络吗?

不能。它们的条款禁止以这种方式收集其数据,很多页面需要登录,而且其中含有个人数据。这类数据请使用该服务的官方 API 或导出功能。

我需要懂编程吗?

不需要。README 会说明如何一次性安装 Python、用一条命令安装采集程序所需的组件并运行它。对于用 JavaScript 生成内容的页面,采集程序会使用浏览器库(Playwright),README 中也有相关说明。

没有找到答案?

套餐