【发布时间】:2017-06-17 03:55:07
【问题描述】:
我正在尝试从 website 中提取 ~3000 个表并将其放入一个文件中
第一次尝试:
library(rvest)
library(dplyr)
library(data.table)
library(readr)
url = read_html("http://seia.sea.gob.cl/busqueda/buscarProyectoAction.php?_paginador_refresh=1&_paginador_fila_actual=1")
relevant_table = url %>%
html_nodes("table") %>%
html_table()
relevant_table = url %>%
html_nodes(xpath = '//*[contains(concat( " ", @class, " " ), concat( " ", "contenido", " " ))] | //td | //th') %>%
html_table()
它不起作用所以我做了:
write_lines(url,"url.txt")
我可以看到<table> ... </table> 部分没有保存。
xpath 部分是在我尝试使用 Chrome 扩展程序中的 selector gadget 检查网站之后出现的。
第二次尝试:
library(XML)
library(httr)
url = "http://seia.sea.gob.cl/busqueda/buscarProyectoAction.php?_paginador_refresh=1&_paginador_fila_actual=1"
doc = htmlParse(GET(theurl, user_agent("Mozilla")))
results = xpathSApply(doc, '//*[contains(concat( " ", @class, " " ), concat( " ", "contenido", " " ))] | //td | //th')
results = readHTMLTable(results[[1]])
与第一次尝试相同的问题。我能注意到的是,导入的 HTML 并没有包含我在 Chrome 中查看源代码时可以看到的表格。
如果我去 view-source:http://seia.sea.gob.cl/busqueda/buscarProyectoAction.php?_paginador_refresh=1&_paginador_fila_actual=1 我可以看到表格:
<tr>
<td>1</td>
<td><a target=_new href='http://seia.sea.gob.cl/expediente/expediente.php?id_expediente=2132451239&modo=ficha' title='Proyecto Inmobiliario Hacienda Estancilla. Comuna de Valdivia. Región de los Ríos'>Proyecto Inmobiliario Hacienda Estancilla. Comuna de Valdivia. Región de los Ríos</a></td>
<td>DIA</td>
<td>Decimocuarta</td>
<td align=center>h1</td>
<td><span title="Teléfono: 222 333 232"> <a href="mailto:dsuazo@civilia.cl">Daniel Andrés Suazo Quinteros</a></span></td>
<td align=right>20,0000</td>
<td align=right>02/06/2017</td>
<td>En Admisión</td>
</tr>
有什么想法吗?非常感谢提前!!
【问题讨论】:
-
当我打开那个页面时,上面没有表格。看起来它可能依赖于会话。
-
“致命错误:在非对象上调用成员函数 setFilaActual()”
-
不是真的,因为我没有登录那个网站
-
@42- 是的,这就是我通过 XML 包获得的。我将在帖子中添加另一种方法
标签: html r web-scraping rvest