Skip to content

feat: add evolution chain scraping - #1

Merged
AofeiLi-code merged 3 commits into
AofeiLi-code:mainfrom
bupt-lxc:feat/evolution-chain
Apr 21, 2026
Merged

feat: add evolution chain scraping#1
AofeiLi-code merged 3 commits into
AofeiLi-code:mainfrom
bupt-lxc:feat/evolution-chain

Conversation

@bupt-lxc

@bupt-lxcbupt-lxc commented Apr 17, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Added parse_evolution_chain() to scrape evolution chain from each sprite's detail page
  • Each stage includes: name, no (sprite number), evolves_from, level, condition
  • no is backfilled post-scrape via name→no mapping, supporting form variants (e.g. 板板壳(蜕皮时的样子))
  • evolution_chain field is stored before skills in JSON output
  • CSV includes evolution_chain column: name(level/condition);...

Full Scrape Results

465 sprites scraped — 465 succeeded, 0 failed.

MetricValue
Total sprites465
With evolution chain406
No evolution chain59
Stages with no = null0

Sample Data — JSON

3-stage chain (喵喵):

[
{"name": "喵喵", "no": 2, "evolves_from": null, "level": null, "condition": null},
{"name": "喵呜", "no": 3, "evolves_from": "喵喵", "level": "16", "condition": null},
{"name": "魔力猫", "no": 4, "evolves_from": "喵呜", "level": "32", "condition": null}
]

Special condition + form variant (晶石蜗):

[
{"name": "矿晶虫", "no": 39, "evolves_from": null, "level": null, "condition": null},
{"name": "晶石蜗(西瓜碧玺的样子)", "no": 40, "evolves_from": "矿晶虫", "level": "40", "condition": "撞击三次蓝晶碧玺"}
]

Sample Data — CSV

evolution_chain column format: name(level/condition);... — empty fields left blank.

nameevolution_chain
喵喵喵喵(/);喵呜(16/);魔力猫(32/)
晶石蜗矿晶虫(/);晶石蜗(西瓜碧玺的样子)(40/撞击三次蓝晶碧玺)

Test Plan

  • 3-stage chain with level requirements
  • Special condition evolution captured
  • Form variant sprites correctly mapped to no (e.g. 板板壳(蜕皮时的样子)→ no: 12)
  • Full scrape: 465/465 succeeded, 0 no=null stages
  • No impact on sim/ battle engine

Kizzen983 added 3 commits April 17, 2026 16:47
Parse evolution chain from sprite detail pages, extracting each stage's
name, id, evolves_from, level requirement, and special condition.
Stored in JSON before skills field, and in CSV as semicolon-separated
entries with format name(level/condition).
Use sprite no (numeric) instead of name as identifier in evolution_chain
stages. Backfill is done post-scrape via name→no mapping.
@AofeiLi-code

Copy link
Copy Markdown
Owner

Thank you for your contribution

@AofeiLi-code
AofeiLi-code merged commit 3c15aec into AofeiLi-code:mainApr 21, 2026
@AofeiLi-code

AofeiLi-code commented Apr 22, 2026 via email

Copy link
Copy Markdown
Owner

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@bupt-lxc@AofeiLi-code