Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 获取url中的字符串(web抓取)_Xml_R_Httr - Fatal编程技术网

Xml 获取url中的字符串(web抓取)

Xml 获取url中的字符串(web抓取),xml,r,httr,Xml,R,Httr,我不熟悉网页抓取,虽然我已经设法在一些地方获得了一些内容。然而,这次虽然我的问题看起来很简单,但我无法在网页中获取包含符号、名称和市场的字符串。也就是说,我想得到字符串“Merck KGaA(MRK.DE) -“XETRA”在url中。我尝试了以下代码,返回了几个表,但我找不到我想要的部分: url <- 'https://finance.yahoo.com/q?s=MRK.DE&ql=0' require(httr) require(XML) table <- readHT

我不熟悉网页抓取,虽然我已经设法在一些地方获得了一些内容。然而,这次虽然我的问题看起来很简单,但我无法在网页中获取包含符号、名称和市场的字符串。也就是说,我想得到字符串“Merck KGaA(MRK.DE) -“XETRA”在url中。我尝试了以下代码,返回了几个表,但我找不到我想要的部分:

url <- 'https://finance.yahoo.com/q?s=MRK.DE&ql=0'
require(httr)
require(XML)
table <- readHTMLTable(content(GET(url)),header=TRUE)

url这可能不是这里最有效的脚本,但它肯定能工作:

library(rvest)
library(magrittr)
library(stringr)

html(url) %>%
  html_nodes("h2") %>%
  extract2(3) %>%
  as('character') %>%
  str_replace('<h2>', '') %>%
  str_replace('</h2>', '')

[1] "Merck KGaA (MRK.DE)"
库(rvest)
图书馆(magrittr)
图书馆(stringr)
html(url)%>%
html_节点(“h2”)%>%
抽提物2(3)%>%
作为('字符')%>%
str_替换('',)%>%
str_替换(“”,“”)
[1] “默克KGaA公司(德国默克公司)”

非常感谢您的帮助。您知道为什么字符串没有被我尝试过的更直接的调用捕获吗?一方面,如果可能的话,我想使用base R或一些标准包,如
XML
httr
/
RCurl
。另一方面,代码越简单越好。
rvest
实际上是Hadley最近发布的一个包,用于从Python镜像漂亮的汤。我发现它是最直观的,没有强大的HTML工作知识。在您的示例中,
readHTMLTable
只会从给定页面中刮取表格数据,它看起来不像“Merck…”放在表格中。您可以让它简单一点:
html(url)%%>%html\U节点(“h2”)%%>%html\U文本()%%>%.[3]
谢谢@hadley!我当然更喜欢你的答案。当我遇到这个问题时,我还在摆弄你的包裹。一如既往,感谢您让我的生活更轻松。:)