Я анализирую html-файл и хочу найти часть файла, в которой написано «Smaller Reporting Company» и рядом с ней стоит «X» или «Флажок», либо нет. Флажок обычно делается с помощью шрифта Wingdings или кода ASCII. В приведенном ниже HTML-коде вы увидите, что рядом с ним стоит þ
.
У меня нет проблем с отображением результатов поиска текста по регулярному выражению, но у меня возникают проблемы при переходе к следующему шагу и поиске флажка.
Я буду использовать это для анализа ряда различных html-файлов, которые не все будут иметь одинаковый формат, но большинство из них будет использовать таблицу и текст ascii, как в этом примере.
Вот код HTML:
<HTML>
<HEAD><TITLE></TITLE></HEAD>
<BODY>
<DIV align="left">Indicate by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer, or a smaller reporting company. See the definitions of “large accelerated filer,” “accelerated filer” and “smaller reporting company”. (Check one):
</DIV>
<DIV align="center">
<TABLE style="font-size: 10pt" cellspacing="0" border="0" cellpadding="0" width="100%">
<!-- Begin Table Head -->
<TR valign="bottom">
<TD width="22%"> </TD>
<TD width="3%"> </TD>
<TD width="22%"> </TD>
<TD width="3%"> </TD>
<TD width="22%"> </TD>
<TD width="3%"> </TD>
<TD width="22%"> </TD>
</TR>
<TR></TR>
<!-- End Table Head -->
<!-- Begin Table Body -->
<TR valign="bottom">
<TD align="center" valign="top"><FONT style="white-space: nowrap"> Large accelerated filer <FONT style="font-family: Wingdings">o</FONT></FONT>
</TD>
<TD> </TD>
<TD align="center" valign="top"><FONT style="white-space: nowrap">Accelerated filer <FONT style="font-family: Wingdings">o</FONT></FONT>
</TD>
<TD> </TD>
<TD align="center" valign="top"><FONT style="white-space: nowrap"> Non-accelerated filer <FONT style="font-family: Wingdings">o</FONT> </FONT>
<FONT style="white-space: nowrap">(Do not check if a smaller reporting company)</FONT>
</TD>
<TD> </TD>
<TD align="center" valign="top"><FONT style="white-space: nowrap"> Smaller reporting company <FONT style="font-family: Wingdings">þ</FONT></FONT></TD>
</TR>
<!-- End Table Body -->
</TABLE>
</DIV></BODY></HTML>
Вот мой код Python:
import os, sys, string, re
from BeautifulSoup import BeautifulSoup
rawDataFile = "testfile1.html"
f = open(rawDataFile)
soup = BeautifulSoup(f)
f.close()
search = soup.findAll(text=re.compile('[sS]maller.*[rR]eporting.*[cC]ompany'))
print search
Вопрос:
Как я мог настроить это, чтобы иметь второй поиск, который зависит от первого поиска? Поэтому, когда я нахожу «меньшую компанию по отчетности», я могу искать следующие несколько строк, чтобы увидеть, есть ли код ascii? Я просматривал суповые документы. Я пытался найти и найти далее, но я не смог заставить его работать.