• 带有 ETP(JS 渲染、反机器人)的投标解析器,具有规范化功能并上传到 PostgreSQL 和 Telegram 警报

    5 小时 前
    • 所需预算高达 380.7 USD
    • 等待表演者...
  • 初始情况:采购部门每天在6个电子交易平台(ETP)上监控新的招标。目前,这是在带有过滤器的浏览器中手动完成的,这就是为什么会遗漏一些相关购买的原因,并且来自不同 ETP 的数据不会合并到单一表单中。

    Technical environment and limitations: Linux server (Ubuntu 22.04), access via SSH. Allowed to use Python 3.11, Playwright or Selenium, requests/httpx, PostgreSQL 14 (database already exists). Docker 是可以的,但不是必需的。 You cannot use paid anti-captcha services and you cannot store credentials from personal accounts in clear text. Access to ETP only as a guest, without authorization. Some sites load content with JavaScript, have anti-bot protection and limits on request frequency.

    主题领域:招标/采购。需要收集采购卡和批次,规范类别和金额,并保存更改历史记录。

    应该发生什么:一个自治解析器按计划从 6 个指定的 ETP 收集数据(我将提供域列表和搜索结果链接示例),将它们带到一个通用模式并将它们添加到 PostgreSQL,并且在出现新的相关购买时向 Telegram 发送通知。

    阶段和关键要求:
    1) 来源分析 - 对于每个 ETP,确定加载方法(XHR/GraphQL/HTML/JS 渲染)、发行和卡的入口点、一组字段、速度限制。
    2) 汇编程序的实现 - 每个源的单独适配器模块具有单个接口。必须支持重播、退避、超时、并发限制、用户代理轮换、通过代理工作(我将提供代理)以及对部分故障的抵抗。
    3)数据规范化 - 数据库中的单一模型:购买、批次、客户、地区、日期(发布/结束)、NMC/货币、状态、链接、站点、文本描述、CPV/OKPD2(如果有),以及关键字和排除词的计算相关字段(我将提供一个列表)。将金额减少为数字,将日期减少为 UTC,使用一组启发式方法(客户的 TIN + 金额 + 日期 + 名称相似性)删除 ETP 之间的重复广告。
    4) 历史存储-当状态或结束日期发生变化时,应在历史表中记录一个带有时间戳和更改字段的新条目。
    5) 通知 - Telegram 机器人发送有关新的相关购买的消息,每次购买不超过 1 个通知,包含简短字段和链接。 /health 命令还返回上次运行的统计信息(源收集了多少、错误数量、时间)。
    6) 操作 - 通过 cron 或 systemd 计时器启动,记录到文件,清除每个源的错误消息。

    具体输出:包含源代码、配置 (env/ini/yaml)、SQL 架构迁移、在 Ubuntu 上运行的说明以及相关过滤器配置示例的存储库。

    可衡量的验收标准:
    - 在测试运行期间,24 小时内,解析器从前 3 页内每个源的搜索结果中收集至少 95% 的广告(通过对每个源 30 个广告的样本进行手动计算进行验证)。
    - 数据库中的重复项不超过每次运行记录总数的 2%(使用唯一键和重复数据删除启发式检查)。
    - 如果来源没有更改,则在相同过滤器上重复启动不会创建新的购买记录,并且仅当字段实际更改时才会更新历史记录。
    - 在 2 vCPU/4 GB RAM 服务器上,所有源的完整运行时间不超过 45 分钟,并行任务最多为 3 个。
    - 日志包含按源和错误原因代码(超时、块、解析、结构更改)的单独统计信息。

    另外:在就方法和数据结构达成一致后,我将提供 ETP 列表、URL 示例、关键字以及测试数据库的访问权限。
  • How would you rate this task?

    Sign in to leave your rating.

    Total ratings: 0

您的报价

您尚未提交此订单的报价。
点击“提交报价”发送您的报价。

需要类似的任务吗?

如果该项目接近您的需求,您可以查看该类别中的现成服务或发布您自己的任务以及所需的预算、截止日期和要求。

项目“带有ETP(JS渲染、反机器人)的报表解析器,具有规范化功能并上传到PostgreSQL和Telegram警报”可以作为自己的简报的参考:应该做什么,需要什么结果,设定什么预算。