MVP сайта
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
import json
|
||||
from pathlib import Path
|
||||
from bs4 import BeautifulSoup
|
||||
|
||||
def extract(markup):
|
||||
soup=BeautifulSoup(markup,'html.parser')
|
||||
records=[]
|
||||
def field_data(field):
|
||||
return {'pointer':field['data-field'],'label':field.get('data-label',''),'state':field['data-value-state'],'type':field.get('data-value-type','string'),'text':field.get_text()}
|
||||
for record in soup.select('.record[data-record-id]'):
|
||||
records.append({'id':record['data-record-id'],'fields':[field_data(f) for f in record.select('.field[data-field]:not([data-role])')],
|
||||
'roles':{f['data-role']:field_data(f) for f in record.select('.field[data-role]')}})
|
||||
return records
|
||||
|
||||
def save(records,path):
|
||||
Path(path).write_text(''.join(json.dumps(r,ensure_ascii=False)+'\n' for r in records),encoding='utf-8')
|
||||
Reference in New Issue
Block a user