I want to convert python parser to json. Here’s a code of my python parser.
import re
import time
from urllib.parse import quote, unquote
from urllib.request import urlopen
import requests
from bs4 import BeautifulSoup
url = "https://fasie.ru"
page = urlopen(url)
html = page.read().decode("utf-8")
soup = BeautifulSoup(html, "html.parser")
div = soup.find_all('div', class_ = 'wrap')
programms_list = div[1].find('ul', class_='').find_all('ul', class_='')[1]
hrefs = programms_list.find_all('a')
download_links = set()
response = requests.get(url+'/programs')
parse_text = BeautifulSoup(response.text, 'html.parser')
links = set([x.get('href') for x in parse_text.find_all(href=re.compile('^/programs/'))])
def main():
for h in hrefs:
url_h = f"https://fasie.ru{h.get('href')}"
page_h = urlopen(url_h)
html_h = page_h.read().decode("utf-8")
soup_h = BeautifulSoup(html_h, "html.parser")
sections = soup_h.find_all('section')
for s in sections:
print(s.text)
for link in links:
response = requests.get(url+link)
parse_text = BeautifulSoup(response.text, 'html.parser')
download_links.update(set([x.get('href') for x in parse_text.find_all(href=re.compile('^/upload/docs'))]))
for link in download_links:
file_name = unquote(link).split('/')[-1]
response = requests.get(url+quote(link))
with open(file_name, 'wb') as f:
f.write(response.content)
main()
And here’s what json should look like
[
{
"source": "Ссылка, откуда взята информация", // в данном случае ссылка fasie.ru
"name": "ИнноШкольник",
"description": "Информация из вкладки `О программе`",
"program": "Данные из вкладки `Конкурсы, программы` в формате HTML",
"contacts": [
{
"name": "Имя контакта",
"tel": "Телефон",
"email": "Почта контакта"
}
],
"documents": [
{
"source": "Ссылка на файл оригинальная, т.е откуда скачали",
"path": "Относительный путь к файлу (уже скачанного)",
"name": "Название файла",
"extension": "Расширение файла (напр. pdf)",
"size": 123 // Размер в байтах
}
]
}
]
It should be to create a bot that will automatically output information from the python code to a JSON
2
Answers
Found it. Thx to user510170
I don’t know if I understood what you meant but to "json stringify" an object you can just create the object in question, import the json library and use the dump method of the json module