R webscraper没有在一行中输出pdf文本



我一直在从牛津期刊上抓取R中的文章,想获取特定文章的全文。所有的文章都有一个pdf链接,所以我一直在尝试提取pdf链接,并将整个文本刮到csv上。全文应该全部放在一行中,但是csv文件中的输出显示了一篇11行的文章。如何解决此问题?

代码如下:

####install.packages("rvest")
library(rvest)
library(RCurl)
library(XML)
library(stringr)
#for Fulltext to read pdf
####install.packages("pdftools")
library(pdftools)

fullText <- function(parsedDocument){
endLink <- parsedDocument %>%
html_node('.article-pdfLink') %>% html_attr('href')
frontLink <- "https://academic.oup.com"
#link  of pdf
pdfLink <- paste(frontLink,endLink,sep = "")
#extract full text  from pdfLink
pdfFullText <- pdf_text(pdfLink)
fulltext <- paste(pdfFullText, sep = "n")
return(fulltext)
}
#############################################
#main function with input as parameter year
testFullText <- function(DOIurl){
parsedDocument <- read_html(DOIurl)
DNAresearch <- data.frame()
allData <- data.frame("Full Text" = fullText(parsedDocument), stringsAsFactors = FALSE)
DNAresearch <-  rbind(DNAresearch, allData)
write.csv(DNAresearch, "DNAresearch.csv", row.names = FALSE)
}
testFullText("https://doi.org/10.1093/dnares/dsm026")

查看您的上一个函数,如果我理解正确,您希望获取url并将所有文本抓取到数据帧/tibble中,然后将其导出到csv。以下是你如何只用一篇文章就可以做到这一点,并且你应该能够通过一点操作来循环浏览一些链接(如果我误解了,很抱歉(:

library(tidyverse)
library(rvest)
# read in html link
document_link <- read_html("https://doi.org/10.1093/dnares/dsm026")
# get the text, and put it into a tibble with only 1 row
text_tibble <- document_link %>% 
html_nodes('.chapter-para') %>% 
html_text() %>% 
as_tibble() %>% 
summarize(full_text = paste(value, collapse = " ")) ## this will collpase to 1 row
# now write to csv
## write_csv(text_tibble, file = "")

最新更新