Python 我正在寻找解析html代码的最佳方法
我正在写一份入学申请书。它的任务是读取subject名称和div类名。类名与您是否在场不同。 最后,我要总结一整年每个学校科目的出勤率 代码来自一天。一年中的每一天我都要这样做。然后总结成百分比 我试着用BeautyfulSoup,但这是一项非常乏味的工作 例如: 'przedmiot obecnosc_3'-学生未出席课堂 'przedmiot obecnosc_0'-学生在课堂上 '2jęz。obcy/jęz。niemiecki'-学校科目名称Python 我正在寻找解析html代码的最佳方法,python,html,python-3.x,parsing,beautifulsoup,Python,Html,Python 3.x,Parsing,Beautifulsoup,我正在写一份入学申请书。它的任务是读取subject名称和div类名。类名与您是否在场不同。 最后,我要总结一整年每个学校科目的出勤率 代码来自一天。一年中的每一天我都要这样做。然后总结成百分比 我试着用BeautyfulSoup,但这是一项非常乏味的工作 例如: 'przedmiot obecnosc_3'-学生未出席课堂 'przedmiot obecnosc_0'-学生在课堂上 '2jęz。obcy/jęz。niemiecki'-学校科目名称 30 - 如果html\u data是您问题
30
-
如果html\u data
是您问题中的代码片段,您可以执行以下操作:
这将创建主题
字典,其中键是主题名称,值是带有两个值的列表-第一个值是学生在场时的小时数,第二个值是学生缺席时的小时数:
from bs4 import BeautifulSoup
soup = BeautifulSoup(html_data, 'html.parser')
subjects = {}
for subject in soup.select('[class*="obecnosc_"]'):
not_present = 'obecnosc_3' in subject.attrs['class']
subjects.setdefault(subject.get_text(strip=True), [0, 0])[not_present] += 1
from pprint import pprint
pprint(subjects)
印刷品:
{'2 - 2 jęz. obcy/jęz. niemiecki': [0, 1],
'3 - matematyka rozszerzona': [1, 0],
'4 - matematyka rozszerzona': [1, 0],
'5 - wychowanie fizyczne': [1, 0],
'6 - wychowanie fizyczne': [1, 0],
'7 - 1 jęz. obcy/jęz. angielski': [1, 0],
'8 - informatyka rozszerzona': [1, 0]}
在Python中,Beautiful Soup通常是解析HTML的最佳方法。在以程序员友好的方式分析HTML时,Beautiful Soup
通常是首选库。我的意思是,您可以尝试lxml
或html.parser
,但这可能会让工作更乏味!我欠你一杯啤酒!
{'2 - 2 jęz. obcy/jęz. niemiecki': [0, 1],
'3 - matematyka rozszerzona': [1, 0],
'4 - matematyka rozszerzona': [1, 0],
'5 - wychowanie fizyczne': [1, 0],
'6 - wychowanie fizyczne': [1, 0],
'7 - 1 jęz. obcy/jęz. angielski': [1, 0],
'8 - informatyka rozszerzona': [1, 0]}