使用特定类抓取所有 div 标签的内容

Posted

技术标签:

【中文标题】使用特定类抓取所有 div 标签的内容【英文标题】:Scraping the content of all div tags with a specific class 【发布时间】:2018-06-30 14:03:32 【问题描述】:

我正在从网站上抓取特定类 div 中出现的所有文本。在下面的示例中,我想提取“a”类 div 中的所有内容。

site <- "<div class='a'>Hello, world</div>
  <div class='b'>Good morning, world</div>
  <div class='a'>Good afternoon, world</div>"

我想要的输出是...

"Hello, world"
"Good afternoon, world"

下面的代码从每个 div 中提取文本,但我不知道如何只包含 class="a"。

library(tidyverse)
library(rvest)

site %>% 
  read_html() %>% 
  html_nodes("div") %>% 
  html_text()

# [1] "Hello, world"          "Good morning, world"   "Good afternoon, world"

使用 Python 的 BeautifulSoup,它看起来像 site.find_all("div", class_="a")

【问题讨论】:

【参考方案1】:

div with class = "a" 的 CSS 选择器是 div.a

site %>% 
  read_html() %>% 
  html_nodes("div.a") %>% 
  html_text()

或者你可以使用 XPath:

html_nodes(xpath = "//div[@class='a']")

【讨论】:

【参考方案2】:
site %>% 
  read_html() %>% 
  html_nodes(xpath = '//*[@class="a"]') %>% 
  html_text()

【讨论】:

以上是关于使用特定类抓取所有 div 标签的内容的主要内容,如果未能解决你的问题,请参考以下文章

python怎么抓取网页中DIV的文字

如何使用 BeautifulSoup 解析特定的 HTML 标签?

使用 PHP 提取具有特定类的 div 标签

用jquery怎么获取页面的特定内容

如何使用Javascript选择具有特定文本内容的所有锚标签? [重复]

用jquery怎么获取页面的特定内容