gpt4 book ai didi

xml - 如何在 R 中抓取安全页面(https 链接)(使用 XML 包中的 readHTMLTable)?

转载 作者:数据小太阳 更新时间:2023-10-29 01:39:13 26 4
gpt4 key购买 nike

SO 上有关于如何使用 XML 包中的 readHTMLTable 的很好的答案,我用常规的 http 页面做到了,但是我无法用 https 页面解决我的问题。

我正在尝试读取此网站上的表格(url 字符串):

library(RTidyHTML)
library(XML)
url <- "https://ned.nih.gov/search/ViewDetails.aspx?NIHID=0010121048"
h = htmlParse(url)
tables <- readHTMLTable(url)

但我收到此错误:文件 https://ned.nih.gov/search/Vi...does不存在。

我试图通过这个(下面的前两行)(通过使用谷歌找到解决方案(像这里:http://tonybreyal.wordpress.com/2012/01/13/r-a-quick-scrape-of-top-grossing-films-from-boxofficemojo-com/))来解决 https 问题。

这个技巧有助于查看更多页面,但任何提取表格的尝试都不起作用。任何建议表示赞赏。我需要组织、组织职务、经理等表格字段。

 #attempt to get past the https problem 
raw <- getURL(url, followlocation = TRUE, cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl"))
head(raw)
[1] "\r\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;
...
h = htmlParse(raw)
Error in htmlParse(raw) : File ...
tables <- readHTMLTable(raw)
Error in htmlParse(doc) : File ...

最佳答案

新包 httr 提供了一个围绕 RCurl 的包装器,使抓取各种页面变得更加容易。

不过,这个页面给我带来了很多麻烦。以下方法有效,但毫无疑问还有更简单的方法。

library("httr")
library("XML")

# Define certicificate file
cafile <- system.file("CurlSSL", "cacert.pem", package = "RCurl")

# Read page
page <- GET(
"https://ned.nih.gov/",
path="search/ViewDetails.aspx",
query="NIHID=0010121048",
config(cainfo = cafile)
)

# Use regex to extract the desired table
x <- text_content(page)
tab <- sub('.*(<table class="grid".*?>.*</table>).*', '\\1', x)

# Parse the table
readHTMLTable(tab)

结果:

$ctl00_ContentPlaceHolder_dvPerson
V1 V2
1 Legal Name: Dr Francis S Collins
2 Preferred Name: Dr Francis Collins
3 E-mail: francis.collins@nih.gov
4 Location: BG 1 RM 1261 CENTER DRBETHESDA MD 20814
5 Mail Stop: Â
6 Phone: 301-496-2433
7 Fax: Â
8 IC: OD (Office of the Director)
9 Organization: Office of the Director (HNA)
10 Classification: Employee
11 TTY: Â

在这里获取 httr:http://cran.r-project.org/web/packages/httr/index.html


编辑有用的页面,包含有关 RCurl 包的常见问题解答:http://www.omegahat.org/RCurl/FAQ.html

关于xml - 如何在 R 中抓取安全页面(https 链接)(使用 XML 包中的 readHTMLTable)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10692066/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com