首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R:使用RVest刮取特定网站的发布日期

R:使用RVest刮取特定网站的发布日期
EN

Stack Overflow用户
提问于 2019-10-12 09:08:00
回答 1查看 294关注 0票数 1

我目前正在使用RVest在R中进行网络抓取。我现在的网站是"https://www.immobilienscout24.de/Suche/S-2/Wohnung-Miete/Rheinland-Pfalz/Koblenz“。但我没办法抢到地产报价的个人pushlishDates。

这是我在脚本中找到的HTML部分。

"@publishDate":"2019-10-12T10:50:57.831+02:00“

我找不到合适的RVest-Selector.下面的代码返回字符,因为节点"publishDate“不工作。

刮每个单独的html_node()所需的html_node()是什么?提前谢谢。

代码语言:javascript
运行
复制
library(rvest)

immo_webp <- read_html ("https://www.immobilienscout24.de/Suche/S-2/Wohnung-Miete/Rheinland-Pfalz/Koblenz")

PDate <- immo_webp %>%
  html_nodes("publishDate") %>%
  html_text()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-12 11:38:06

内容是从script标记动态加载的。您可以正则化出适当的字符串并使用jsonlite进行解析,然后提取到感兴趣的数据项中,例如使用purrr

R:

代码语言:javascript
运行
复制
library(rvest)
library(stringr)
library(jsonlite)
library(purrr)

p <- read_html('https://www.immobilienscout24.de/Suche/S-2/Wohnung-Miete/Rheinland-Pfalz/Koblenz') %>% html_text()
data <- jsonlite::parse_json(str_match_all(p,'resultListModel: (.*\\})')[[1]][,2])
results <- data$searchResponseModel$resultlist.resultlist$resultlistEntries[[1]]$resultlistEntry

df <- map_df(results, function(item) {

  data.frame(property = item$resultlist.realEstate$address$description$text,
             datePublished = item$`@publishDate`,
             stringsAsFactors=FALSE)
})

View(df)

Py:

代码语言:javascript
运行
复制
from bs4 import BeautifulSoup as bs
import requests, re, json
import pandas as pd

r = requests.get('https://www.immobilienscout24.de/Suche/S-2/Wohnung-Miete/Rheinland-Pfalz/Koblenz')
p = re.compile(r'resultListModel: (.*})')
data = json.loads(p.findall(r.text)[0])
info = [
        (entry['resultlist.realEstate']['address']['description']['text']
        ,entry['@publishDate']) 
        for entry in data['searchResponseModel']['resultlist.resultlist']['resultlistEntries'][0]['resultlistEntry']
        ]
print(pd.DataFrame(info,columns = ['Property','PublishedDate']))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58352560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档