0
私はクローズが必要なタグとそうでないタグを混在させたSGMLファイルを持っています。 BeautifulSoupはこれをHTMLで誇張することができますが、私のタグはカスタムであり、BeautifulSoupはファイルの終わりでそれらを閉じるだけです。ここでは、ソースです:BeautifulSoupでカスタムタグのプロパティを定義する方法は?
from bs4 import BeautifulSoup
import requests
url = 'https://www.sec.gov/Archives/edgar/data/1122304/000119312515118890/0001193125-15-118890.hdr.sgml'
sgml = requests.get(url).text
soup = BeautifulSoup(sgml, 'html5lib')
そして、ここでfileだ:FILER
とCOMPANY-DATA
は終了タグが必要で、他にはない
<SEC-HEADER>0001193125-15-118890.hdr.sgml : 20150403
<ACCEPTANCE-DATETIME>20150403143902
<ACCESSION-NUMBER>0001193125-15-118890
<TYPE>DEF 14A
<PUBLIC-DOCUMENT-COUNT>37
<PERIOD>20150515
<FILING-DATE>20150403
<DATE-OF-FILING-DATE-CHANGE>20150403
<EFFECTIVENESS-DATE>20150403
<FILER>
<COMPANY-DATA>
<CONFORMED-NAME>AETNA INC /PA/
<CIK>0001122304
<ASSIGNED-SIC>6324
<IRS-NUMBER>232229683
<STATE-OF-INCORPORATION>PA
<FISCAL-YEAR-END>1231
</COMPANY-DATA>
...
</SEC-HEADER>
。
行の最後にある特定のタグを閉じるようにBeautifulSoupのパーサーに指示するにはどうすればよいですか? BSがbr
とli
を対価として扱う方法とは何かがありますか、a
とdiv
ですか?
BeautifulSoupは、不正な形式のHTML/XML、 からデータを解析して抽出していますが、壊れたHTMLが曖昧な場合は、一連の規則を使用してタグを解釈します。これはあなたが望まないものです。 BeautifulSoupの代わりにファイルの解析に正規表現を使用しないのはなぜですか? –
@ChristosPapoulasカスタムタグの場合、BeautifulSoupはコンストラクタ( 'BeautifulSoup()')に 'selfClosingTags'パラメータを持っていました。それはBeautifulSoup4にはありません。たとえば、http://stackoverflow.com/questions/14961497/how-to-get-beautifulsoup-4-to-respect-a-self-closing-tagを参照してください。 BS4では、「ツリービルダーは自己閉鎖タグを理解する責任がありますが、そこに設定する方法は? –
http://stackoverflow.com/questions/12505419/parse-sgml-with-open-arbitrary-tags-in-python-3/12534420#12534420があなたにとって興味深いかもしれません。 –