将ruby语言的doc.search(".body h2||||.body p").map{|x| x.inner_text}改成python
时间: 2023-11-07 22:07:37 浏览: 35
的代码应该怎么写?
在 Python 中可以使用 BeautifulSoup 库来解析 HTML 文档并提取内容。与 Ruby 中的 Nokogiri 类似,BeautifulSoup 也提供了类似 CSS Selector 的语法来选择 HTML 中的元素。
下面是将 Ruby 代码转换成 Python 代码的示例:
```python
from bs4 import BeautifulSoup
# 解析 HTML 文档
soup = BeautifulSoup(html_doc, 'html.parser')
# 找到所有 class 为 "body" 的元素
body_elems = soup.find_all(class_="body")
# 遍历所有找到的元素
for body_elem in body_elems:
# 找到所有 h2 和 p 元素
elems = body_elem.find_all(['h2', 'p'])
# 提取元素的 innerText
texts = [elem.get_text() for elem in elems]
# 输出结果
print(texts)
```
其中,`html_doc` 是要解析的 HTML 文档的字符串。代码中使用了 BeautifulSoup 的 `find_all` 方法来查找所有 class 为 "body" 的元素,然后再从每个元素中找到所有的 h2 和 p 元素,最后提取它们的 innerText 并输出结果。
需要注意的是,在 Python 中,CSS Selector 和 Ruby 中有些许不同,比如 CSS Selector 中的 "|" 在 Python 中要写成 `||`,另外在 Python 中也可以使用 `class_` 参数来指定 class 名称。