我正在学习python(使用3.5)。我意识到我可能需要一点热情来发布我的问题。这里是:我已经完成了几百篇帖子,帮助文档等等,试图构建我需要的代码。到目前为止没有运气。我希望有一个人可以帮助我。我有一组网址说,18或更多。这里只说明了两个:
[1]“http://www.senate.mo.gov/media/15info/Chappelle-Nadal/releases/111915.html”
[2]“http://www.senate.mo.gov/media/15info/Chappelle-Nadal/releases/092215.htm”
我需要抓取每个网址后面的所有数据(文本)并写出单个文本文件(每个网址一个)以供将来的主题模型分析。现在,我使用rvest
通过R拉入网址。然后我将每个url(一次一个,按代码)放入python并执行以下操作:
soup = BeautifulSoup(urlopen('http://www.senate.mo.gov/media/14info/chappelle-nadal/Columns/012314-Condensed.html').read())
txt = soup.find('div', {'class' : 'body'})
print(soup.get_text())
#print(soup.prettify()) not much help
#store the info in an object, then write out the object
test=print(soup.get_text())
test=soup.get_text()
#below does write a file
#how to take my BS object and get it in
open_file = open('23Jan2014cplNadal1.txt', 'w')
open_file.write(test)
open_file.close()
上面让我部分到达目标。它让我对文本有点清理,但没关系。问题是劳动密集型。
有没有办法
我必须为大约1000名州级参议员执行此流程。非常感谢任何帮助或指导。
编辑原文:非常感谢你们所有人。致N. Velasquez:我尝试了以下方法:
urls<-c("http://www.senate.mo.gov/media/14info/Chappelle-Nadal/releases/120114.html",
"http://www.senate.mo.gov/media/14info/Chappelle-Nadal/releases/110614.htm"
)
for (url in urls) {
download.file(url, destfile = basename(url), method="curl", mode ="w", extra="-k")
}
然后将答案 0 :(得分:0)
1的答案是:当然! 以下代码将根据您的请求循环遍历html列表并导出原子TXT。 请注意,通过rvest和html_node(),您可以获得更多结构数据集,并且单独存储html的重复部分。 (标题,办公室信息,正文,网址等)
library(rvest)
urls <- (c("http://www.senate.mo.gov/media/15info/Chappelle-Nadal/releases/111915.html", "http://www.senate.mo.gov/media/15info/Chappelle-Nadal/releases/092215.htm"))
for (i in 1:length(urls))
{
ht <- list()
ht[i] <- html_text(html_node(read_html(urls[i]), xpath = '//*[@id="mainContent"]'), trim = TRUE)
ht <- gsub("[\r\n]","",ht)
writeLines(ht[i], paste("DOC_", i, ".txt", sep =""))
}
在工作目录中查找DOC_1.txt和DOC_2.txt。