网页抓取时,我们把"html.parser"论点放在哪里?



查看以下代码片段

import requests
from bs4 import BeautifulSoup
url = #Insert url here
# Method 1
html = requests.get(url, "html.parser")
soup = BeautifulSoup( html.text )
#Method 2
html2 = requests.get(url)
soup2 = BeautifulSoup( html.text, "html.parser")

哪种方法是正确的?方法1还是方法2?我们应该把";html.解析器";在requests.get((或BeautifulSoup((中?

解析器不是HTTP请求的一部分。

这是一种解析不同类型文档的方法。因此,在使用BeautifulSoup解析html文档时,您必须提到解析器

因此,方法2是正确的。

BeautifulSoup构造函数的DocString

:param标记:表示要解析的标记。

:param features:要使用的解析器的理想功能。这可以是特定解析器的名称("lxml"、"lxml-xml";,"html解析器";,或";html5lib"(也可能是标记的类型将被使用("html"、"html5"、"xml"(。建议您命名一个特定的解析器,以便Beautiful Soup为您提供跨平台和虚拟环境的结果相同。

如果我理解正确,你的方法2是正确的,你会想把它放在BeautifulSoup构造函数上,因为

  1. 请求与Beautiful Soup是分开的;html.解析器";在构造函数上可以执行任何操作
  2. 您希望为Beautiful Soup指定解析器,因为它可能解析html以外的内容,例如lxml的XML解析器

美丽的汤文档

最新更新