如何使用 rvest 从 google 搜索中检索标题下方的文本

2023-12-10

这是这个问题的后续问题:

如何使用 rvest 从 google 搜索中检索标题

这次我试图在谷歌搜索中获取标题后面的文本(用红色圈出):

enter image description here

由于我缺乏网页设计知识,我不知道如何制定 xpath 来提取标题下面的文本。

@AllanCameron 的答案非常有用,但我不知道如何修改它:

library(rvest)
library(tidyverse)
#Code
#url
url <- 'https://www.google.com/search?q=Mario+Torres+Mexico'
#Get data
first_page <- read_html(url)
titles <- html_nodes(first_page, xpath = "//div/div/div/a/h3") %>% 
  html_text()

非常感谢您的帮助!


这一切都可以在没有 Selenium 的情况下使用 rvest 来完成。不幸的是,Google 在不同的区域设置中的工作方式有所不同,因此例如在我的区域设置中,必须先导航一个同意页面,然后才能向 Google 发送请求。

似乎这在 OP 语言环境中不是必需的,但对于那些在英国的人来说,您可能需要先运行以下代码才能使其余代码正常工作:

library(rvest)
library(tidyverse)

url <- 'https://www.google.com/search?q=Mario+Torres+Mexico'

google_handle <- httr::handle('https://www.google.com')
httr::GET('https://www.google.com', handle = google_handle)
httr::POST(paste0('https://consent.google.com/save?continue=',
                  'https://www.google.com/',
                  '&gl=GB&m=0&pc=shp&x=5&src=2',
                  '&hl=en&bl=gws_20220801-0_RC1&uxe=eomtse&',
                  'set_eom=false&set_aps=true&set_sc=true'), 
           handle = google_handle)
url <- httr::GET(url, handle = google_handle)

对于OP和那些没有Google同意页面的人来说,设置很简单:

library(rvest)
library(tidyverse)

url <- 'https://www.google.com/search?q=Mario+Torres+Mexico'

接下来,我们定义将用于提取标题(如之前的问答)以及标题下方的文本(与此问题相关)的 xpath

title <- "//div/div/div/a/h3"
text  <- paste0(title, "/parent::a/parent::div/following-sibling::div")

现在我们可以应用这些 xpath 来获取正确的节点并从中提取文本:

first_page <- read_html(url)

tibble(title = first_page %>% html_nodes(xpath = title) %>% html_text(),
       text = first_page %>% html_nodes(xpath = text) %>% html_text())
#> # A tibble: 9 x 2
#>   title                                text                                    
#>   <chr>                                <chr>                                   
#> 1 "Mario García Torres - Wikipedia"    "Mario García Torres (born 1975 in Monc~
#> 2 "Mario Torres (@mario_torres25) • I~ "Mario Torres. Oaxaca, México. Luz y co~
#> 3 "Mario Lopez Torres - A Furniture A~ "The Mario Lopez Torres boutiques are a~
#> 4 "Mario Torres - Player profile | Tr~ "Mario Torres. Unknown since: -. Mario ~
#> 5 "Mario García Torres | The Guggenhe~ "Mario García Torres was born in 1975 i~
#> 6 "Mario Torres - Founder - InfOhana ~ "Ve el perfil de Mario Torres en Linked~
#> 7 "3500+ \"Mario Torres\" profiles - ~ "View the profiles of professionals nam~
#> 8 "Mario Torres Lopez - 33 For Sale o~ "H 69 in. Dm 20.5 in. 1970s Tropical Vi~
#> 9 "Mario Lopez Torres's Woven River G~ "28 Jun 2022 · From grass harvesting to~
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 rvest 从 google 搜索中检索标题下方的文本 的相关文章

  • 在 R 中使用两个 for 循环创建矩阵/数据框

    这是我在 SO 上的第一篇文章 所以请友善 我的问题与这个问题隐约相关 R中的双for循环创建矩阵 https stackoverflow com questions 44376020 double for loop in r creati
  • 如何找到对象的创建位置?

    我目前正在努力改进对其他脚本有不同调用的代码 我想知道在哪里创建对象 对于其中一些人来说 只需使用文本编辑器的搜索选项即可 只要看看是否obj lt or obj 有什么结果 但这不适用于使用assign功能 在加载的脚本中创建的也不是 T
  • 展平 ggplot2 中的 alpha 通道

    ggplot2 的某些对象 函数 支持 alpha 通道 http docs ggplot2 org current geom point html http docs ggplot2 org current geom point html
  • lme4:如何指定 2 个与随机截距的相关性,而不添加随机斜率之间的相关性

    重新发布自stats stackexchange com https stats stackexchange com q 195385 33560 我试图在 R 的 lme4 包中指定一个模型 其中随机截距和随机斜率之间有 2 个相关性 但
  • 数据集子集的回归

    我想做以下事情并需要一些帮助 分别计算 身高 与 年龄 的斜率和截距 lm Height Age 一 每个人 二 性别 并创建一个包含结果 斜率和截距 的表 我可以使用 申请 吗 在下一步中 我想做一个统计测试 以确定性别之间的斜率和截距是
  • R 中具有 NA 值的聚合栅格

    我在 R 中有一个分辨率为 1 公里的栅格 其 NA 值分布广泛 但位置不规则 即 包含数据的单元格不连续 并且 NA 值分散 我正在尝试使用用户定义的平均圆角函数 包括在下面 以 5 公里分辨率 因子 5 聚合此栅格 使用 raster
  • 为 PDF 输出添加 natbib 选项

    有没有办法指定natibib输出 PDF 时的选项bookdown 我希望 tex 输出具有命令 usepackage sort compress natbib 但似乎没有任何方法可以在 YAML 中指定它 我无法将命令添加到我的序言中 因
  • 匹配向量内的向量

    I have vec1 lt c 0 0 0 1 1 0 1 1 1 0 0 1 vec2 lt c 1 1 我预计 magicFUN x vec1 y vec2 1 4 7 8 这意味着我想要一个完整向量在另一个向量内的位置 match
  • 不同的分位数:箱线图与小提琴图

    require ggplot2 require cowplot d iris ggplot2 ggplot d aes factor 0 Sepal Length geom violin fill black alpha 0 2 draw
  • 添加不同的标签以在 ggplot R 中的堆积条形图中显示总计?

    我的问题有点类似 如何添加文本标签以显示ggplot中堆叠比例条的每个条中的总数n https stackoverflow com questions 65201095 how to add text label to show total
  • 如何编写一个也接受字符输入的 NES 函数?

    我正在开发一个将字符串作为函数参数的 R 包 现在我想使用非标准评估来允许非字符串输入 另外 为了保持向后兼容性 我想保留函数接受字符串的可能性 哈德利给出了example https cran r project org web pack
  • corr.test 与 cor.test p 值

    我正在尝试使用 psych 包 psych 1 6 9 中的 corr test 但在使用 method spearman 时 它似乎给出了与 cor test 不同的 p 值 相关系数相同 但 p 值不同 我整理了一些示例代码和输出 如下
  • 使用 dplyr 按组计算加权平均值(并复制其他方法)

    我对语法感到困惑dplyr当尝试计算加权平均值时 我听从大卫的建议here https stackoverflow com a 27609266 1457380 语法非常透明 因此很有吸引力 但它似乎没有按我的预期工作 低于加权平均值是针对
  • Rblpapi - 将 bdp 与 ISIN / Cusip 一起使用会出现错误

    当我将 bdp 与 ISIN 或 CUSIP 一起使用时 出现以下错误 bdp US25470XAB10 ISIN ULT PARENT TICKER EXCHANGE bdp 25470XAB1 CUSIP ULT PARENT TICK
  • 如何连接 R 列表中的多个 .wav 文件?

    我有一个 wav 文件列表my list library seewave library tuneR data tico audio lt tico freq lt 22050 breaks lt c 0 0 2 0 4 0 6 0 8 i
  • 将一个大的 xlsx 文件导入到 R 中?

    我想知道是否有人知道从 大 xlsx 文件 20Mb 导入数据的方法 我尝试使用 xlsx 和 XLConnect 库 不幸的是 两者都使用 rJava 我总是收到相同的错误 gt library XLConnect gt wb lt lo
  • 如何将变量传递给 ddply 中的自定义函数?

    考虑以下数据 d data frame experiment as factor c foo foo foo bar bar si runif 5 ti runif 5 我想进行相关性测试si and ti 对于每个experiment因素
  • 在 R 中使用 ggplot2 叠加两个图

    有两个数据框 df1 df2我需要使用 ggplot2 创建线图并显示在同一个图表上 df1 x y 2 30 4 25 6 20 8 15 df2 x y 2 12 4 16 6 20 8 24 用于绘制第一个 df p1 lt ggpl
  • R 中的微秒时间戳

    在 CSV 文件中 我有几列 其中一列有时间戳 其中每个时间戳是今天午夜经过的微秒 每个 csv 文件仅包含一天内的数据 因此这并不含糊 我的问题是 如何将这些微秒时间戳解析为 R 多谢 我的 CSV 文件的一部分 34201881666
  • 修改x轴刻度标签

    我正在尝试更改由生成的箱线图的 x 轴刻度标签ggplot2 x 轴是一个分类变量 HabFac 我想要的是将其刻度更改为 6 个化学品 A E 下面是我的代码 raw data read table Read data p TT ggpl

随机推荐

  • Google Drive PHP SDK 保存无标题文件

    我正在使用以下函数来插入文件 function insertFile service title description parentId mimeType filename file new DriveFile file gt setTi
  • 带有居中 UISlider 和两个图像的自定义 UITableViewCell

    我想以编程方式创建自定义UITableViewCell with a UISlider在中心和两张图片在任一端 有关示例 请参阅任何 iOS 设备上的亮度设置 它的中心有一个 UISlider 两端有两个类似太阳的图像 一大一小 这基本上就
  • C++ 运行时错误:添加无符号偏移量?

    我写了以下内容来检查文本是否是回文 我在 leetcode 上运行它 但出现错误 class Solution public bool isPalindrome string s int l 0 r s length 1 while l
  • 无法从 Android 中的 onOptionsItemSelected 完成活动

    我正在尝试从菜单选项关闭 活动 当菜单项menu close activity被选中 并且在调试时 我注意到调试器总是从 return true 步骤跳转到默认值 我尝试使用ActivityClassName this finish 但我仍
  • 如何在Recyclerview中实现CountDownTimer?

    您好 我正在开发一个设置倒计时的小应用程序 现在我希望在回收器视图内的背景前看到这个倒计时 因此 最终用户将设置多个倒计时器 这些计时器将在回收器视图中以背景显示 我现在所做的远非完美 但它朝着我想要的方向发展 我现在遇到的唯一问题是 因为
  • 在sencha touch 2中使用oAuth连接facebook

    sencha touch 2 没有提供任何与 facebook 连接的函数 库吗 到目前为止我还不太清楚 我们可以在 sencha touch 中使用 facebook javascript sdk 吗 我发现以下教程很好 我们可以将它与
  • 如何将 Postgres any-clause 与 JPA/Hibernate 本机查询(数组参数)结合使用

    所以我们有大量的 Postgres SQL 查询存储在文件中并从 PHP 中使用 任务是用Java取代PHP 我们希望 按原样 重用尽可能多的查询 以保持迁移路径较短 我无法让数组参数起作用 这是一个查询示例 update user dev
  • 如何创建不会覆盖 META-INF/services 下条目的 fat jar

    我有以下 gradle 构建配置 plugins id com github johnrengelman shadow version 1 2 3 group abc version 1 0 SNAPSHOT apply plugin ja
  • 如何使用 python 读取联系人的 Whatsapp 消息?

    我正在构建一个在指定时间登录 Zoom 的机器人 并且链接是从 Whatsapp 获取的 所以我想知道是否可以直接从 Whatsapp 检索这些链接 而不必将其复制粘贴到 python 中 谷歌充满了发送消息的指南 但是有什么方法可以读取和
  • 将 YYYYMMDD 字符串转换为 MM/DD/YYYY 字符串

    我有一个以 YYYYDDMM 格式存储为字符串的日期 我想以 MM DD YYYY 格式显示该值 我正在用 c 编程 我当前使用的代码如下 txtOC31 Text dr OC31 ToString Trim strOC31date dr
  • 将图像上传到 Google Cloud Storage (Java)

    我想开发一个java应用程序 适用于pc 可以将任何图片上传到谷歌云存储 尽管我花了整个晚上的时间来寻找解决方案 但我不知道如何开始 你们中有人有将图像上传到 Google Cloud Storage 的经验吗 谷歌云存储有更好的替代品吗
  • 将 Matlab 函数结果缓存到文件

    我正在用 Matlab 编写一个模拟 我最终会运行这个模拟数百次 在每次仿真运行中 都有数百万个仿真周期 在每个周期中 我都会计算一个非常复杂的函数 该函数需要 0 5秒完成 函数输入是一个长位数组 gt 1000 位 这是一个数组0 an
  • 如何使用单个命令在 Apache Kafka 中创建主题列表

    截至目前 我正在使用以下命令一一创建一个主题 sh bin kafka topics create zookeeper localhost 2181 topic sdelivery replication factor 1 partitio
  • Java 是否有相当于 C# 的“yield”关键字?

    我知道 Java 本身没有直接的等价物 但也许有第三方 真的很方便 目前我想实现一个迭代器 它生成树中的所有节点 大约有五行带有yield的代码 我知道的两个选项是Aviad Ben Dov 2007 年的 infomancers coll
  • 如何将 LocalDate 转换为 SQL Date Java?

    如何将 LocalDate 转换为java sql Date Attempt Record r new Record LocalDate date new Date 1967 06 22 r setDateOfBirth new Date
  • 如何很好地输出分隔字符串的列表?

    通常 当我必须显示分隔字符串的列表时 我会执行以下操作 using namespace std vector
  • LINQ子查询“NOT IN”问题

    我不明白为什么这个查询失败 var qTags from tagsU in context ADN ProductTagsView where from o in context ADN ProductTagsView where o Pr
  • 如何将数组的内容写入文本文件? C#

    我正在尝试将数组的内容写入文本文件 我已经创建了文件 并将文本框分配给了数组 不确定是否正确 现在我想将数组的内容写入文本文件 Streamwriter 部分是我陷入底部的地方 不确定语法 if File Exists scores txt
  • 什么时候使用哪种指针?

    好吧 上次我以写 C 为生时 std auto ptr所有的标准库都可用吗 boost shared ptr风靡一时 我从未真正研究过 boost 提供的其他智能指针类型 据我所知 C 11 现在提供了 boost 提出的一些类型 但不是全
  • 如何使用 rvest 从 google 搜索中检索标题下方的文本

    这是这个问题的后续问题 如何使用 rvest 从 google 搜索中检索标题 这次我试图在谷歌搜索中获取标题后面的文本 用红色圈出 由于我缺乏网页设计知识 我不知道如何制定 xpath 来提取标题下面的文本 AllanCameron 的答