关键词:
【中文标题】抓取分层数据【英文标题】:Scraping hierarchical data 【发布时间】:2013-01-17 02:57:34 【问题描述】:我正在尝试从global Dept stores 抓取大陆/国家/地区的 Dept 商店列表。我正在运行以下代码首先获取大陆,因为我们可以看到 XML 层次结构的方式使得每个大陆的国家不是该大陆的子节点。
> url<-"http://en.wikipedia.org/wiki/List_of_department_stores_by_country"
> doc = htmlTreeParse(url, useInternalNodes = T)
> nodeNames = getNodeSet(doc, "//h2/span[@class='mw-headline']")
> # For Africa
> xmlChildren(nodeNames[[1]])
$a
<a href="/wiki/Africa" title="Africa">Africa</a>
attr(,"class")
[1] "XMLInternalNodeList" "XMLNodeList"
> xmlSize(nodeNames[[1]])
[1] 1
我知道我可以在单独的 getNodeSet 命令中处理国家/地区,但我只是想确保我没有遗漏任何东西。有没有更聪明的方法可以同时获取每个大陆和每个国家/地区的所有数据?
【问题讨论】:
鉴于文档的结构,使用 SAX 解析它可能比使用 DOM 树更容易。 【参考方案1】:uisng xpath,多个路径可以用|组合分隔器。所以我用它来获得同一个列表中的国家和商店。然后我得到第二个国家名单。我使用后一个列表来拆分第一个列表
url<-"http://en.wikipedia.org/wiki/List_of_department_stores_by_country"
library(XML)
xmltext <- htmlTreeParse(url, useInternalNodes = T)
## Here I use the combined xpath
cont.shops <- xpathApply(xmltext, '//*[@id="mw-content-text"]/ul/li|
//*[@id="mw-content-text"]/h3',xmlValue)
cont.shops<- do.call(rbind,cont.shops) ## from list to vector
head(cont.shops) ## first element is country followed by shops
[,1]
[1,] "[edit] Â Tunisia"
[2,] "Magasin Général"
[3,] "Mercure Market"
[4,] "Promogro"
[5,] "Geant"
[6,] "Carrefour"
## I get all the contries in one list
contries <- xpathApply(xmltext, '//*[@id="mw-content-text"]/h3',xmlValue)
contries <- do.call(rbind,contries) ## from list to vector
head(contries)
[,1]
[1,] "[edit] Â Tunisia"
[2,] "[edit] Â Morocco"
[3,] "[edit] Â Ghana"
[4,] "[edit] Â Kenya"
[5,] "[edit] Â Nigeria"
[6,] "[edit] Â South Africa"
现在我进行一些处理,以使用国家/地区拆分 cont.shops。
dd <- which(cont.shops %in% contries) ## get the index of contries
freq <- c(diff(dd),length(cont.shops)-tail(dd,1)+1) ## use diff to get Frequencies
contries.f <- rep(contries,freq) ## create the factor splitter
ll <- split(cont.shops,contries.f)
我可以检查结果:
> ll[[contries[1]]]
[1] "[edit]  Tunisia" "Magasin Général" "Mercure Market" "Promogro" "Geant"
[6] "Carrefour" "Monoprix"
> ll[[contries[2]]]
[1] "[edit] Â Morocco"
[2] "Alpha 55, one 6-story store in Casablanca"
[3] "Galeries Lafayette, to open in 2011[1] within Morocco Mall, in Casablanca"
【讨论】:
这很有帮助。谢谢如何在 python 中对 URL 进行分层排序?
...【发布时间】:2022-01-2002:32:52【问题描述】:给定从网站抓取的初始URL列表:https://somesite.com/https://somesite.com/advertisehttps://somesite.com/articleshttps://somesite.com/artic 查看详情
数据仓库分层(代码片段)
数据仓库分层1、介绍数据仓库更多代表的是一种对数据的管理和使用的方式,它是一整套包括了etl、调度、建模在内的完整的理论体系。现在所谓的大数据更多的是一种数据量级的增大和工具的上的更新。两者并无冲突,相反... 查看详情
数据仓库之数仓分层及hive分层
目录一、数据仓库之数仓分层(一)为什么要分层?(二)数仓三层1、数据运营层:ODS(OperationalDataStore)2、数据仓库层:DW(DataWarehouse)3、数据应用层:APP(Applicati 查看详情
建模分层数据仓库维度
】建模分层数据仓库维度【英文标题】:modellinghierarchicaldatawarehousedimension【发布时间】:2014-05-2812:47:19【问题描述】:我正在尝试对分层的维度进行建模,并且在每个级别上具有不确定数量的特征。下面是一个关于如何在数据... 查看详情
如何使用redis存储分层数据?
】如何使用redis存储分层数据?【英文标题】:Howtouseredistostorehierarchicaldata?【发布时间】:2014-04-0416:55:25【问题描述】:我有一组分层数据要存储,分层就像站点/建筑物/楼层,例如数据site:\'NewYork\',buildings:[name:\'buildinga\',floors:[... 查看详情
数据记录分层
】数据记录分层【英文标题】:DatalogStratification【发布时间】:2012-09-0423:27:40【问题描述】:所以我试图了解Datalog的工作原理,它与Prolog之间的区别之一是它在否定和递归上具有分层限制。引用***:如果谓词P是从谓词Q肯定派生... 查看详情
数据仓库的分层架构设计
数据仓库采用分层架构,分为缓冲层、操作数据层、明细数据层、汇总数据层和数据集市层。如图为数据仓库分层架构示意图。1、缓冲层概念:用于存储每天的增量数据和变更数据。数据生成方式:直接从Kafka接收源数据或从业... 查看详情
Oracle分层查询数据
】Oracle分层查询数据【英文标题】:Oraclehierarchicalqueriesdata【发布时间】:2021-03-0504:03:56【问题描述】:link提供了一个很好的示例来概述如何使用Oracle分层查询。我试图使用链接中给出的示例表tab1生成以下数据组合,但持续了... 查看详情
分层拆分数据
】分层拆分数据【英文标题】:stratifiedsplittingthedata【发布时间】:2014-01-1315:22:12【问题描述】:我有一个大型数据集,喜欢为每个城市拟合不同的逻辑回归,这是我数据中的一列。以下70/30拆分在不考虑城市组的情况下有效。in... 查看详情
如何从按连续变量分层的 Pandas 数据框中获取分层随机样本
】如何从按连续变量分层的Pandas数据框中获取分层随机样本【英文标题】:HowdoyoutakeastratifiedrandomsamplefromaPandasdataframethatstratifiesbyacontinuousvariable【发布时间】:2018-01-1105:03:16【问题描述】:问题:我有一个包含1,000,000行的大型Pan... 查看详情
Apache Spark 中的分层数据操作
】ApacheSpark中的分层数据操作【英文标题】:HierarchicaldatamanipulationinApacheSpark【发布时间】:2017-12-2717:10:24【问题描述】:我在Spark(v2.1.1)中有一个包含分层数据的3列(如下所示)的数据集。我的目标是根据父子层次结构为每一行... 查看详情
数据平台分层
https://mp.weixin.qq.com/s/ph7qxvoeDDNRvwUnuL5WRQ 独家解读:魅族数据平台的设计哲学和核心架构InfoQ 2018-01-29 查看详情
通过 JDBC 访问分层数据 [关闭]
】通过JDBC访问分层数据[关闭]【英文标题】:AccessinghierarchicaldataviaJDBC[closed]【发布时间】:2011-08-1316:26:53【问题描述】:我有一个包含列ID和父级的表菜单。我们可以使用普通的JDBC(无ORM)从数据库中加载分层数据吗?我们可... 查看详情
如何使用分层索引保存和检索 Pandas 数据帧?
】如何使用分层索引保存和检索Pandas数据帧?【英文标题】:HowtosaveandretrivePandasdataframeswithhierarchichalindexing?【发布时间】:2015-03-2506:29:28【问题描述】:我需要创建并保存一个带有分层索引的Pandas数据框。在下面,我创建了两... 查看详情
nodejs分层
一.nodeJS分层分为三层:- 表现层:接受用户数据,并封装- 服务层:与公司业务有关的东西,处理判断呀什么的- 持久层:与数据库有关的 表现层:page与表现层的数据传递,routes接受前台数据 注... 查看详情
数据仓库为什么要分层
如何分层结合Inmon和Kimball的集线器式和总线式的数据仓库的优点,分层为ODS-DW-DM-OLAP/OLAM/appODS层是将OLTP数据通过ETL同步到数据仓库来作为数据仓库最基础的数据来源。在这个过程中,数据经过了一定的清洗,比如字段的统一,脏... 查看详情
r语言对dataframe(data.table)数据分层随机抽样实战
R语言对dataframe(data.table)数据分层随机抽样实战目录R语言对dataframe(data.table)数据分层抽样实战#仿真数据#分层抽样 查看详情
在mysql中获取分层数据[重复]
】在mysql中获取分层数据[重复]【英文标题】:Fetchinghierarchicaldatainmysql[duplicate]【发布时间】:2021-12-2904:43:45【问题描述】:我有一个user表,USER_IDIMMEDIATE_SUPERIOR_ID432NULL554432115043214421150为了获取分层数据,我编写了这个查询SELECTc1... 查看详情