gpt4 book ai didi

regex - 从网页递归下载 zip 文件 (Windows)

转载 作者:行者123 更新时间:2023-12-05 01:02:02 27 4
gpt4 key购买 nike

是否可以从网页下载所有 zip 文件,而无需一次指定一个链接。

我想从 http://download.companieshouse.gov.uk/en_monthlyaccountsdata.html 下载所有月度帐户 zip 文件.

我使用的是 Windows 8.1、R3.1.1。我没有wget在 PC 上,所以不能使用递归调用。

替代:
作为一种解决方法,我尝试下载网页文本本身。然后我想提取每个 zip 文件的名称,然后我可以将其传递给 download.file在一个循环中。但是,我正在努力提取名称。

pth <- "http://download.companieshouse.gov.uk/en_monthlyaccountsdata.html"

temp <- tempfile()
download.file(pth,temp)
dat <- readLines(temp)
unlink(temp)

g <- dat[grepl("accounts_monthly", tolower(dat))]
g包含带有文件名的字符串,以及其他字符。
g
[1] " <li><a href=\"Accounts_Monthly_Data-September2013.zip\">Accounts_Monthly_Data-September2013.zip (775Mb)</a></li>"
[2] " <li><a href=\"Accounts_Monthly_Data-October2013.zip\">Accounts_Monthly_Data-October2013.zip (622Mb)</a></li>"

我想提取文件名 Accounts_Monthly_Data-September2013.zip等等,但我的正则表达式非常糟糕(自己看)
    gsub(".*\\>(\\w+\\.zip)\\s+", "\\1", g)

数据
g <- c("                    <li><a href=\"Accounts_Monthly_Data-September2013.zip\">Accounts_Monthly_Data-September2013.zip  (775Mb)</a></li>", 
" <li><a href=\"Accounts_Monthly_Data-October2013.zip\">Accounts_Monthly_Data-October2013.zip (622Mb)</a></li>"
)

最佳答案

使用 XML包裹:

pth <- "http://download.companieshouse.gov.uk/en_monthlyaccountsdata.html"
library(XML)
doc <- htmlParse(pth)
myfiles <- doc["//a[contains(text(),'Accounts_Monthly_Data')]", fun = xmlAttrs]
fileURLS <- file.path("http://download.companieshouse.gov.uk", myfiles)
mapply(download.file, url = fileURLS, destfile = myfiles)
"//a[contains(text(),'Accounts_Monthly_Data')]"XPATH表达。它指示 XML 包选择所有包含文本“Accounts_Monthly_Data”的 anchor ( a)节点。这个结果是一个节点列表。 fun = xmlAttrs然后参数告诉 XML 包将这些节点传递给 xmlAttrs功能。此函数从 xml 节点中剥离属性。在这种情况下, anchor 只有一个属性 href这就是我们正在寻找的。

关于regex - 从网页递归下载 zip 文件 (Windows),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27192907/

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