fetch-ocg-banlist.py 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import json
  2. import urllib.request
  3. import re
  4. url = "https://www.db.yugioh-card.com/yugiohdb/forbidden_limited.action?request_locale=ja"
  5. source_data = ""
  6. with urllib.request.urlopen(url) as response:
  7. data = response.read().decode('utf-8')
  8. current_status = -1
  9. output_data = {"regulation": {}}
  10. for line in data.split('\n'):
  11. if '</div><!-- #list_semi_limited .list_set -->' in line:
  12. current_status = -1
  13. if '<div id="list_semi_limited" class="list_set">' in line:
  14. current_status = 2
  15. if '<div id="list_forbidden" class="list_set">' in line:
  16. current_status = 0
  17. if '<div id="list_limited" class="list_set">' in line:
  18. current_status = 1
  19. pattern = r'<input type="hidden" class="link_value" value="/yugiohdb/card_search\.action\?ope=\d+&cid=(\d+)">'
  20. match = re.search(pattern, line)
  21. if match and current_status >= 0:
  22. cid = match.group(1)
  23. output_data["regulation"][cid] = current_status
  24. with open('banlist.json', 'w') as fp:
  25. json.dump(output_data, fp)