Интернет соскабливает огромную страницу права с ужасным HTMLPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Интернет соскабливает огромную страницу права с ужасным HTML

Сообщение Anonymous »

Я пытаюсь снять этот бразильский закон в интернет -формате, такого как: {"artigo": int, "texto": str} *(статья и текст ). Тексты неартий.

Код: Выделить всё

import requests
import re
import json
from bs4 import BeautifulSoup
import chardet

url = "https://www.planalto.gov.br/ccivil_03/_ato2015-2018/2015/lei/L13105compilada.htm"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
}
response = requests.get(url, headers=headers)
data = response.content

detected = chardet.detect(data)
encoding = detected['encoding']
print(f"Codificação detectada: {encoding}")

html = data.decode(encoding)
soup = BeautifulSoup(html, 'html.parser')
artigos = []

for p in soup.find_all('p', class_='Artigo'):
texto_completo = p.get_text(separator=' ', strip=True)
match = re.search(r'Art\.\s*(\d+)', texto_completo)
if match:
num_artigo = int(match.group(1))
texto_limpo = re.sub(r'Art\.\s*\d+[ºº]?\s*', '', texto_completo, count=1)
artigos.append({
"artigo": num_artigo,
"texto": texto_limpo
})

print(json.dumps(artigos, indent=2, ensure_ascii=False))
Так есть ли способ правильно получить все статьи?

Подробнее здесь: https://stackoverflow.com/questions/794 ... rible-html
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»