我得从一个叫独角兽拍卖的拍卖网站上删除数据。
当我尝试使用rvest来做这件事时,我可以得到的一切都是拍卖标题和URL,但我也需要它的开始和结束日期。当我尝试找到它的CSS类时,我发现的是以下代码行:
我是abre刮它使用RSelenium,因为我发现在这里堆栈溢出.但我的老板希望它只是与rvest.他说,这是可能的,但我找不到任何有用的youtube视频或文章.我不想让任何人只是给予我的解决方案,我只是需要一些帮助!
qvtsj1bj1#
首先在brwoser的开发工具中从页面源和/或网络响应中搜索其中的一些值,例如“2023”将引导您找到正确的位置。页面视图变量嵌入在<script>...</script>元素中,
<script>...</script>
<script type="text/javascript"> viewVars = {"escaper":{},...,"auctions": {"result_page":[{...,"time_start": "2023-11-06T01:00:00Z",...}; </script>
字符串该JavaScript表达式只是一个单一的赋值,当从开始(viewVars = {)和结束(;)删除几位时,结果字符串可以解析为JSON:
viewVars = {
;
library(rvest) library(stringr) library(dplyr) upcominng <- read_html("https://bid.unicornauctions.com/") |> html_element(xpath = "//script[contains(text(),'viewVars =')]") |> html_text() |> # remove few bits from javascript to to make parseble as JSON str_remove("^\\s+viewVars =") |> str_remove(";\\s+$") |> jsonlite::fromJSON() |> # extract results_page from the list purrr::pluck("upcomingAuctions", "result_page") |> as_tibble() select(upcominng, title, contains("time")) |> glimpse() #> Rows: 4 #> Columns: 9 #> $ title <chr> "November 'No Reserves' Unicorn Auction 2023"… #> $ time_start <chr> "2023-11-06T01:00:00Z", "2023-11-13T01:00:00Z… #> $ time_start_live_auction <lgl> NA, NA, NA, NA #> $ time_start_proxy_bidding <lgl> NA, NA, NA, NA #> $ timezone <chr> "America/Chicago", "America/Chicago", "Americ… #> $ effective_end_time <chr> "2023-11-13T00:00:00Z", "2023-11-20T00:00:00Z… #> $ extended_end_time <lgl> NA, NA, NA, NA #> $ realtime_server_url <lgl> NA, NA, NA, NA #> $ is_times_the_money <lgl> FALSE, FALSE, FALSE, FALSE
型创建于2023-11-12使用reprex v2.0.2
1条答案
按热度按时间qvtsj1bj1#
首先在brwoser的开发工具中从页面源和/或网络响应中搜索其中的一些值,例如“2023”将引导您找到正确的位置。
页面视图变量嵌入在
<script>...</script>
元素中,字符串
该JavaScript表达式只是一个单一的赋值,当从开始(
viewVars = {
)和结束(;
)删除几位时,结果字符串可以解析为JSON:型
创建于2023-11-12使用reprex v2.0.2