首页 > 解决方案 > 抓取时查找特定值,找不到值时忽略

问题描述

所以,我正在创建一个网络抓取工具,我想实现一个 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 语句没有任何反应,并且此链接是应该获取文本的链接。

标签: pythonhtmlpython-3.xbeautifulsoupfind

解决方案


如果你得到 p 标签的文本

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

您将从上面提到的 url 中获得输出,例如

» 咨询 » Diário do Judiciário

显然这将返回 Falsesoup.find('p', text='Comarca de'): 所以它不会在 if 语句之后进一步执行


推荐阅读