Rumah > Soal Jawab > teks badan
soup=bs(html)
html2 = soup.prettify('utf-8', formatter='minimal')
prettify()
方法的第二个参数 formatter
到底有几个合法的取值呢?
我们只知道有 minimal
, 还有什么呢?我们都不知道.
怎么找到这些参数的值呢?
这是 python 最不好的一个地方,方法的说明里不写明白,使用者怎么寻找这些特定的取值呢?
迷茫2017-04-18 10:29:16
在官方的 doc 裡面就有完整的說明了:
Pemformat output
Lalai ialah formatter="minimal". Rentetan hanya akan diproses secukupnya untuk memastikan Sup Cantik menghasilkan HTML/XML yang sah
Jika anda lulus dalam formatter="html", Beautiful Soup akan menukar aksara Unicode kepada entiti HTML apabila boleh
Jika anda lulus dalam formatter=Tiada, Beautiful Soup tidak akan mengubah suai rentetan sama sekali pada output. Ini adalah pilihan terpantas, tetapi ia mungkin menyebabkan Sup Cantik menjana HTML/XML tidak sah
Akhir sekali, jika anda memasukkan fungsi untuk pemformat, Beautiful Soup akan memanggil fungsi itu sekali untuk setiap rentetan dan nilai atribut dalam dokumen. Anda boleh melakukan apa sahaja yang anda mahu dalam fungsi ini.
Kod 至於要找:
In [1]: import bs4
In [2]: bs4.BeautifulSoup.prettify.__code__
Out[2]: <code object prettify at 0x103f7f5d0, file "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/bs4/element.py", line 1198>
我回答過的問題: Python-QA
伊谢尔伦2017-04-18 10:29:16
Tengok kod...
HTML_FORMATTERS = {
"html" : HTMLAwareEntitySubstitution.substitute_html,
"minimal" : HTMLAwareEntitySubstitution.substitute_xml,
None : None
}
XML_FORMATTERS = {
"html" : EntitySubstitution.substitute_html,
"minimal" : EntitySubstitution.substitute_xml,
None : None
}
Boleh didapati di https://imgur.com/gallery/VkNUv
Saya tidak tahu mengapa gambar ini tidak boleh dipaparkan