【发布时间】:2016-07-16 07:52:25
【问题描述】:
我在从网站上抓取文本后尝试编写一个 CSV 文件。我已经找到了这个答案:How can write scraped content to a CSV file?,但这并不能解决我的问题。
问题是我写完 CSV 文件后只有一行。
这是我目前的代码(我使用了bs4 和mechanize):
from bs4 import BeautifulSoup
import mechanize
url = "https://www.contratos.gov.co/consultas/detalleProceso.do?numConstancia=15-12-3634534"
br = mechanize.Browser()
search = br.open(url)
# Browser options
br.set_handle_equiv(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
br.addheaders = [('User-agent', 'Firefox')]
response = search.read()
soup = BeautifulSoup(response, 'lxml')
text = soup.findAll('td', {'class': 'tablaslistOdd'})
for t in text:
result = t.text.replace("\t", "").replace("\r", "").replace('\n', '')
newResult = result.encode('utf-8')
#print newResult
for line in newResult:
output = open('data/myCSVfile.csv', 'w')
output.write(newResult)
output.close()
我正在寻找的是为每一行文本编写一个 CSV 列。 这可能吗? 任何解决问题的建议都非常感谢!
【问题讨论】:
-
在循环外部打开文件
-
并在循环之外关闭它。祝大家好运。
-
嗨,@PadraicCunningham!我认为是一个不同的问题。也许我需要编辑问题以便更清楚:)
-
@estebanpdl,在循环外打开是否可以解决问题?
-
我刚刚编辑了这个问题。它部分解决了问题。我要编写的是 为每一行编写一个 CSV 列。
标签: python csv web-scraping beautifulsoup text-mining