Web从HTML抓取pdf文件

时间:2017-10-02 10:40:42

标签: r text web-scraping tidytext

如何从HTML中删除pdf文档?我正在使用R而我只能从HTML中提取文本。我要废弃的网站示例如下。

https://www.bot.or.th/English/MonetaryPolicy/Northern/EconomicReport/Pages/Releass_Economic_north.aspx

此致

1 个答案:

答案 0 :(得分:3)

当您说要从HTML页面中抓取PDF文件时,我认为您面临的第一个问题是实际识别这些PDF文件的位置。

library(XML)
library(RCurl)

url <- "https://www.bot.or.th/English/MonetaryPolicy/Northern/EconomicReport/Pages/Releass_Economic_north.aspx"
page   <- getURL(url)
parsed <- htmlParse(page)
links  <- xpathSApply(parsed, path="//a", xmlGetAttr, "href")
inds   <- grep("*.pdf", links)
links  <- links[inds]

links包含您尝试下载的PDF文件的所有网址。

小心:当您自动抓取文档并被阻止时,许多网站都不太喜欢它。

通过这些链接,您可以开始循环链接并逐个下载它们并将其保存在名为destination的工作目录中。我决定根据链接(在网址中的最后/之后提取最后一个部分

为您的PDF提取合理的文档名称)
regex_match <- regexpr("[^/]+$", links, perl=TRUE)
destination <- regmatches(links, regex_match)

为了避免网站服务器超载,我听说每隔一段时间暂停你的抓取是很友好的,因此我使用'Sys.sleep()`来暂停刮0到5秒之间的时间:

for(i in seq_along(links)){
  download.file(links[i], destfile=destination[i])
  Sys.sleep(runif(1, 1, 5))
}