Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.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
R 将网站内容保存到txt文件中_R_Web Crawler - Fatal编程技术网

R 将网站内容保存到txt文件中

R 将网站内容保存到txt文件中,r,web-crawler,R,Web Crawler,我正在尝试编写R代码,输入URL并输出(保存在硬盘上)一个.txt文件。我使用“edgarWebR”包创建了一个url的大列表。一个例子是“”。基本上 打开链接 复制所有内容(CTRL+A、CTRL+C) 打开empy文本文件并粘贴内容(CTRL+V) 以指定的名称保存.txt文件 (当然是以循环的方式)。我倾向于“硬编码”(就像在browner的开放网站中使用browseURL(…)和“发送密钥”命令)。但我担心它不会很顺利地运行。但是,其他命令(如readLines())似乎复制HTML结构

我正在尝试编写R代码,输入URL并输出(保存在硬盘上)一个.txt文件。我使用“edgarWebR”包创建了一个url的大列表。一个例子是“”。基本上

  • 打开链接
  • 复制所有内容(CTRL+A、CTRL+C)
  • 打开empy文本文件并粘贴内容(CTRL+V)
  • 以指定的名称保存.txt文件
  • (当然是以循环的方式)。我倾向于“硬编码”(就像在browner的开放网站中使用browseURL(…)和“发送密钥”命令)。但我担心它不会很顺利地运行。但是,其他命令(如readLines())似乎复制HTML结构(因此不仅返回文本)

    最后,我对每封股东信函中的一小段内容感兴趣(仅包含文本;因此,表格/图表在我的特定设置中并不重要。)

    有人知道R函数有助于`


    提前谢谢

    请让我知道以下代码是否适用于您。xpathSApply也可以应用于不同的html组件。因为在你的情况下,只需要段落

    library(RCurl)
    library(XML)
    
    # Create character vector of urls
    urls <- c("url1", "url2", "url3")
    
    for ( url in urls) {
        # download html
        html <- getURL(url, followlocation = TRUE)
    
        # parse html
        doc = htmlParse(html, asText=TRUE)
        plain.text <- xpathSApply(doc, "//p", xmlValue)
    
        # writing lines to html
        # depends whether you need separate files for each url or same
        fileConn<-file(paste(url, "txt", sep="."))
        writeLines(paste(plain.text, collapse = "\n"), fileConn)
        close(fileConn)
    }
    
    库(RCurl)
    库(XML)
    #创建URL的字符向量
    
    URL感谢大家的支持。事实证明,考虑到我需要解析的网站数量,任何html转换都花费了太多的时间。(工作)解决方案可能违反了一些最佳实践准则,但它确实做到了这一点

    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    
    driver = webdriver.Firefox(executable_path=path + '/codes_ml/geckodriver/geckodriver.exe') # initialize driver
    # it is fine to open the driver just once
    
    # loop over urls will the text
    driver.get(report_url)
    element = driver.find_element_by_css_selector("body")
    element.send_keys(Keys.CONTROL+'a')
    element.send_keys(Keys.CONTROL+'c')
    text = clipboard.paste()
    

    嘿,我最后还是用了同样的密码。然而,htmlpasse的速度非常慢。我使用的文档大小大约为10-15秒。考虑到我正试图恢复的文件数量,我还不确定这在计算上是否可以接受,但它确实有效!谢谢