Как мне сделать результат этой переменной? - PullRequest
0 голосов
/ 05 марта 2010

сейчас он настроен на запись в файл, но я хочу, чтобы он выводил значение в переменную. не знаю как.

from BeautifulSoup import BeautifulSoup
import sys, re, urllib2
import codecs


woof1 = urllib2.urlopen('someurl').read()
woof_1 = BeautifulSoup(woof1)
woof2 = urllib2.urlopen('someurl').read()
woof_2 = BeautifulSoup(woof2)

GE_DB = open('GE_DB.txt', 'a')

for row in woof_1.findAll("tr", { "class" : "row_b" }):
  for col in row.findAll(re.compile('td')):
    GE_DB.write(col.string if col.string else '')
GE_DB.write("   ")
GE_DB.write("\n")
GE_DB.close()
for row in woof_2.findAll("tr", { "class" : "row_b" }):
  for col in row.findAll(re.compile('td')):
    GE_DB.write(col.string if col.string else '')
GE_DB.write("\n")
GE_DB.close()

Ответы [ 4 ]

0 голосов
/ 05 марта 2010

Избавьтесь от всех упоминаний GE_DB.

сделать outputtext = "" к началу.

Заменить GE_DB.write(col.string if col.string else '') на outputtext += col.string if col.string else ''

0 голосов
/ 05 марта 2010

может быть так.

gedb = "";
for row in woof_1.findAll("tr", { "class" : "row_b" }):
  for col in row.findAll(re.compile('td')):
    if col.string:
      gedb += col.string

0 голосов
/ 05 марта 2010
import cStringIO as StringIO   # or import StringIO if on a fringe platform
buf = StringIO.StringIO()
for row in woof_1.findAll("tr", { "class" : "row_b" }):
  for col in row.findAll(re.compile('td')):
    buf.write(col.string if col.string else '')

result = buf.getvalue()
0 голосов
/ 05 марта 2010
values = []
for row in woof_1.findAll("tr", { "class" : "row_b" }):
  for col in row.findAll(re.compile('td')):
    if col.string:
      values.append(col.string)
result = ''.join(values)
...