在 R 中使用 React JS 抓取网页

2023-12-12


我正在尝试抓取下面的页面:https://metro.zakaz.ua/uk/?promotion=1
此页面包含反应内容。
我可以用代码抓取第一页:

url="https://metro.zakaz.ua/uk/?promotion=1"

read_html(url)%>%
  html_nodes("script")%>%
  .[[8]] %>% 
  html_text()%>%
  fromJSON()%>%
  .$catalog%>%.$items%>%
  data.frame

结果我拥有第一页的所有项目,但我不知道如何抓取其他页面。
如果有帮助,请将此 js 代码移至其他页面:

document.querySelectorAll('.catalog-pagination')[0].children[1].children[0].click()

谢谢你的帮助!


您将需要“RSelenum”来执行无头导航。

检查设置:如何为 R 设置 rselenium?

library(RSelenium)
library(rvest)
library(tidyvers)

url="https://metro.zakaz.ua/uk/?promotion=1"

rD <- rsDriver(port=4444L, browser="chrome")
remDr <- rD[['client']]

remDr$navigate(url)

### adjust items you want to scrape 
    src <- remDr$getPageSource()[[1]]

    pg <- read_html(src)
    tbl <- tibble(
                    product_name = pg %>% html_nodes(".product-card-name") %>% html_text(),
                    product_info = pg %>% html_nodes(".product-card-info") %>% html_text()
                    )

## to handle pagenation (tested with 5 pages) - adjust accordinly
for (i in 2:5) {
    pages <- remDr$findElement(using = 'css selector',str_c(".page:nth-child(",i,")"))

    pages$clickElement()  

    ## wait 5 sec to load
    Sys.sleep(5)

    src <- remDr$getPageSource()[[1]]

        pg <- read_html(src)
        data <- tibble(
                    product_name = pg %>% html_nodes(".product-card-name") %>% html_text(),
                    product_info = pg %>% html_nodes(".product-card-info") %>% html_text()
                    )
        tbl <- tbl %>% bind_rows(data)
}

nrow(tbl)
head(tbl)
tail(tbl)

这是一个快速输出:

Output

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 R 中使用 React JS 抓取网页 的相关文章

随机推荐

  • 带有 Node.js 的 jQuery 插件

    我在我的 node js 应用程序中使用 jQuery 和 jsdom 此外 我想使用 jQuery 插件 例如 jQuery diff 但我找不到如何做到这一点 还有出路吗 在文档中创建脚本标记以将脚本加载到其中 例子 createWin
  • 将 JPA 和 JDBC 操作组合到一个事务中

    因此 我有一个应用程序 其中包含一些遗留的 JDBC 调用 我需要使用一些额外的 JPA 操作来更新它们 我需要能够将 JDBC 调用和 JPA 调用作为同一数据库事务的一部分进行 如果重要的话 我正在使用 OpenJPA 2 1 1 和
  • 如何让4个元素绕一圈旋转?

    首先我想说我是jquery的初学者 我想让这些 div 沿顺时针方向绕一圈移动 直径为 500px 我该怎么做呢 div class textBox div div class textBox div div class textBox d
  • 如何将sqlite数据库直接存储在sd卡上

    我想在 sdcard 中创建我的 sqlite 数据库而不是默认路径 我也想从 sdcard 访问我的所有数据 我已经使用过这段代码 private static class OpenHelper extends SQLiteOpenHel
  • redirect_stderr 不起作用(Python 3.5)

    python3 from contextlib import redirect stderr import io f io StringIO with redirect stderr f simulates an error erd 如上所
  • Angular.bootstrap 抛出错误

    我正在尝试将我的网站迁移到 Angular 但速度很慢 当前情况是我有一个纯 HTML 登录页面 其中有一个用于打开忘记密码弹出窗口的链接 我已将 忘记密码 页面迁移到 Angular 所以我正在做的是 当用户单击链接时 我通过 getsc
  • 为什么C程序第一次运行时速度慢10倍

    我使用排序的 C 程序第一次运行速度比其他时候慢 10 倍 它使用整数文件进行排序 即使我更改数字 程序仍然运行得更快 当我重新启动电脑时 第一次程序运行速度慢了 10 倍 我用time来计算时间 即使不再需要 操作系统也会将数据保存在 R
  • 自定义表情符号和动画表情符号不起作用 [discord.py-rewrite]

    我最近构建了一个简单的命令来测试自定义表情符号和动画表情符号的格式 这是命令的内容 bot command async def say ctx text await ctx send lt ono 521148278079881219 gt
  • 在 Sublime Text 中设置我自己的语法

    有时我使用 Sublime Text 来编写提醒 我总是使用相同的布局来完成此任务 如下所示 gt Title gt gt Subtitle gt gt gt Comment gt Title gt gt Where a gt 代表制表符
  • Google Apps 脚本 - 在独立脚本上使用 Google 的文件选择器

    我正在创建一个应用程序 要求用户从其云端硬盘中选择一个文件夹 我正在努力设置 Picker API 遵循本文档我使用他们的 Hello World 脚本设置了我的项目 但在更改 devlopedKey 和 clientID 后 我测试代码以
  • 如何在 Perl 6 中将子项放入正则表达式中?

    这就是我正在努力做的事情 gt my sub nplus1 n n 1 gt my regex nnplus1 d nplus1 0 gt 123 nnplus1 P6opaque no such attribute pos in type
  • 如何实现/使用log4j? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我很快将在一个项目中使用 Java 的 log4j 类来创建日志 但我认为我对此一无所知或一无所知 希望有人能启发我解决这个但微不足道的问题 Log4j 基本上接受您想要输出的任
  • CSS-3 'target-new' 和 html5 target='_blank' 用于在新选项卡中打开

    我正在寻找在新选项卡中打开页面的解决方案 然后我找到了 CSS 3 属性新目标 它指出 如果用户想要在新选项卡中打开新窗口 她可以使用以下用户样式表来执行此操作 目标新 选项卡 重要的 我有几个问题 其内部如何运作 为什么我们在html5规
  • 适用于 xamarin android 的 ClearableEdittext

    我已访问此链接和堆栈上的许多其他链接 但我无法找到 xamarin android 的类似解决方案 https stackoverflow com a 14470930 7462031 我已经实现了框架布局解决方案 但我希望在整个应用程序中
  • Android 上的简单地图应用程序(google api v2)。不起作用。错误

    我尝试在 Android 上编写一个简单的地图应用程序 但唯一的结果是错误 我尝试按照应有的方式对其进行编程 但它仍然不起作用 主要活动 package com example guidebook import android os Bun
  • 这个说法正确吗? HTTP GET 方法始终没有消息正文

    这个说法正确吗 HTTP GET 方法始终没有消息正文 我没有找到 RFC2616 的任何部分明确说明这一点 如果这不是真的 那么在什么情况下 Http GET 请求会包含消息正文 Neither 休息客户端 nor 休息控制台支持这一点
  • 在 WPF 中保存单击按钮的用户颜色设置

    我在保存按钮的某些属性时遇到了一些问题 按钮很小并且有多种颜色 当我按下一个按钮时 一些指定的颜色正在改变 我想保存它们以供下次启动 我可以保存文本框值 但这 我不能 Code public MainWindow InitializeCom
  • 使用 Ruby 捕获网络摄像头图像[重复]

    这个问题在这里已经有答案了 Ruby 中有没有可以用来捕获网络摄像头图像的库 必须在 GNU Linux 上运行 这看起来不错http www wedesoft demon co uk hornetseye api files Hornet
  • 测试时如何将模拟对象注入到类中?

    我的用户类别如下 public class UserResource Inject UserService userService public boolean createUser User user DbResponse res use
  • 在 R 中使用 React JS 抓取网页

    我正在尝试抓取下面的页面 https metro zakaz ua uk promotion 1 此页面包含反应内容 我可以用代码抓取第一页 url https metro zakaz ua uk promotion 1 read html