Maison  >  Questions et réponses  >  le corps du texte

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

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

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

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

巴扎黑巴扎黑2741 Il y a quelques jours970

répondre à tous(2)je répondrai

  • 迷茫

    迷茫2017-04-18 10:29:16

    在官方的 doc 裡面就有完整的說明了 :

    Formateurs de sortie

    • La valeur par défaut est formatter="minimal". Les chaînes ne seront traitées que suffisamment pour garantir que Beautiful Soup génère du HTML/XML valide

    • Si vous transmettez formatter="html", Beautiful Soup convertira les caractères Unicode en entités HTML autant que possible

    • Si vous passez formatter=None, Beautiful Soup ne modifiera pas du tout les chaînes en sortie. C'est l'option la plus rapide, mais elle peut conduire Beautiful Soup à générer du HTML/XML non valide

    • Enfin, si vous transmettez une fonction au formateur, Beautiful Soup appellera cette fonction une fois pour chaque chaîne et valeur d'attribut du document. Vous pouvez faire ce que vous voulez dans cette fonction.

    Code 至於要找 :

    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

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 10:29:16

    Regardez le code...

        HTML_FORMATTERS = {
            "html" : HTMLAwareEntitySubstitution.substitute_html,
            "minimal" : HTMLAwareEntitySubstitution.substitute_xml,
            None : None
            }
    
        XML_FORMATTERS = {
            "html" : EntitySubstitution.substitute_html,
            "minimal" : EntitySubstitution.substitute_xml,
            None : None
            }

    Peut être trouvé sur https://imgur.com/gallery/VkNUv

    Je ne sais pas pourquoi cette image ne peut pas être affichée

    répondre
    0
  • Annulerrépondre