@NH-LOCAL
למה?, סקריפט מאוד פשוט
from bs4 import BeautifulSoup
def get_toc(file_path, level = 2):
with open(file_path, "r", encoding="utf-8") as f:
content = f.read()
soup = BeautifulSoup(content, "html.parser")
list_all = list(tag.string for tag in soup.find_all(f"h{level}"))
return list_all
אגב אתה יכול להשתמש גם בapi של מדיה ויקי, משהו בסגנון הזה:
def get_list_by_category(category: str)->list:
"""מחזיר רשימת דפים שנמצאים בקטגוריה מסוימת."""
i = 0
pages = []
cmcontinue = ''
while True:
i += 1
params = {
'action': 'query',
'list': 'categorymembers',
'cmtitle': category,
'cmtype': 'page',
'cmlimit': 'max',
'format': 'json',
'cmcontinue': cmcontinue
}
response = requests.get(BASE_URL, params=params)
data = response.json()
if 'query' in data and 'categorymembers' in data['query']:
pages.extend([page["title"] for page in data['query']['categorymembers']])
else:
print("Error fetching pages:", data)
break
if 'continue' not in data:
break
cmcontinue = data['continue']['cmcontinue']
print(f"Fetching pages: batch {i}")
return pages