Найти значение c при очистке и игнорировать, если значение не найдено - PullRequest
0 голосов
/ 29 марта 2020

Итак, я создаю инструмент для очистки веб-страниц и хотел бы реализовать оператор IF, который проверяет, находится ли текст «Comarca de» внутри абзаца в HTML, но он не работает, вот что я сделал ». мы пробовали:

import urllib.request
import bs4
from bs4 import BeautifulSoup

pagina_scrap = str('http://www8.tjmg.jus.br/juridico/diario/index.jsp?dia=0903&completa=interior|0720')
pagina_open = urllib.request.urlopen(pagina_scrap)
soup = bs4.BeautifulSoup(pagina_open, 'html.parser')
arquivo = open("INTERIOR0903.txt", "w+")

if soup.find('p', text='Comarca de'):
    for div in soup.find_all('div', class_='corpo'):
        print(div.text)
        arquivo.write(div.text)

Без оператора IF соскоб работает нормально, но с оператором with ничего не происходит, и эта ссылка должна получить текст.

Ответы [ 2 ]

0 голосов
/ 29 марта 2020

Итак, я смотрел только на Суп, а python предложил мне встроенную функцию поиска. В конце концов это сработало так:

import urllib.request
import bs4
from bs4 import BeautifulSoup


    dia_hoje = input("Qual a data? DDMM")
    #num_jornal = input("Qual o número do Jornal?")
    pagina_scrap = str('http://www8.tjmg.jus.br/juridico/diario/index.jsp?dia=' + dia_hoje + '&completa=interior|0720')
    pagina_open = urllib.request.urlopen(pagina_scrap)
    soup = bs4.BeautifulSoup(pagina_open, 'html.parser')
    arquivo = open("INTERIOR0903.txt", "a")
    for div in soup.find_all('div', class_='corpo'):
        if str(div.text).find('COMARCA DE'):
            arquivo.write(div.text)
        else:
            print("Didn't worked")
0 голосов
/ 29 марта 2020

Если вы получите текст тега p

 print(soup.find('p').get_text())

, вы получите вывод по указанному выше URL-адресу, например

»Consultas» Diário do Judiciário

очевидно, он вернет False soup.find('p', text='Comarca de'):, поэтому он не будет выполняться после оператора if

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...