cari

Rumah  >  Soal Jawab  >  teks badan

python - 怎么查看Beautiful Soup的prettify(encoding, formatter="minimal")

soup=bs(html)
html2 = soup.prettify('utf-8', formatter='minimal')

prettify() 方法的第二个参数 formatter 到底有几个合法的取值呢?

我们只知道有 minimal, 还有什么呢?我们都不知道.
怎么找到这些参数的值呢?
这是 python 最不好的一个地方,方法的说明里不写明白,使用者怎么寻找这些特定的取值呢?

巴扎黑巴扎黑2786 hari yang lalu1017

membalas semua(2)saya akan balas

  • 迷茫

    迷茫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

    balas
    0
  • 伊谢尔伦

    伊谢尔伦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

    balas
    0
  • Batalbalas