python - 怎么查看Beautiful Soup的prettify(encoding, formatter="minimal")
問(wèn)題描述
soup=bs(html)html2 = soup.prettify(’utf-8’, formatter=’minimal’)
prettify() 方法的第二個(gè)參數(shù) formatter 到底有幾個(gè)合法的取值呢?
我們只知道有 minimal, 還有什么呢?我們都不知道.怎么找到這些參數(shù)的值呢?這是 python 最不好的一個(gè)地方,方法的說(shuō)明里不寫明白,使用者怎么尋找這些特定的取值呢?
問(wèn)題解答
回答1:在官方的 doc 裡面就有完整的說(shuō)明了:
Output formatters
The default is formatter='minimal'. Strings will only be processed enough to ensure that Beautiful Soup generates valid HTML/XML
If you pass in formatter='html', Beautiful Soup will convert Unicode characters to HTML entities whenever possible
If you pass in formatter=None, Beautiful Soup will not modify strings at all on output. This is the fastest option, but it may lead to Beautiful Soup generating invalid HTML/XML
Finally, if you pass in a function for formatter, Beautiful Soup will call that function once for every string and attribute value in the document. You can do whatever you want in this function.
至於要找 code:
In [1]: import bs4In [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>
我回答過(guò)的問(wèn)題: Python-QA
回答2:看代碼...
HTML_FORMATTERS = {'html' : HTMLAwareEntitySubstitution.substitute_html,'minimal' : HTMLAwareEntitySubstitution.substitute_xml,None : None} XML_FORMATTERS = {'html' : EntitySubstitution.substitute_html,'minimal' : EntitySubstitution.substitute_xml,None : None}
可以見 https://imgur.com/gallery/VkNUv
不知道怎么顯示不出來(lái)這個(gè)圖片
