2010-03-04 66 views
-1

現在它設置爲寫入文件,但我希望它將值輸出到一個變量。不知道如何。如何使這個變量的結果?

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() 
+2

這將有助於大大如果您解釋(1)你知道什麼是「輸出值給一個變量」來表示,並一旦這樣完成的(2)你的腳本將用做「變量」 - 剛剛落在腳本的末尾似乎沒有值得第1步的努力。 – 2010-03-04 23:50:59

+0

好吧,所以當你在一個表上運行上述腳本。它需要td標籤之間的內容。我希望它將該值作爲變量存儲。 – Pevo 2010-03-04 23:53:21

+5

質量-1票是怎麼回事? – 2010-03-05 00:17:25

回答

-1
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) 
+0

我收到|的無效語法如果(col.string)| )不知道爲什麼。 = /我做了什麼? – Pevo 2010-03-04 23:49:51

+0

@Pevo,對不起,我在if語句後錯過了冒號。更正它。 – Li0liQ 2010-03-04 23:54:17

+0

您的記者省略了一個必要的':',但包含多餘的'('和')';-) – 2010-03-04 23:56:04

-1

也許是這樣的。

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

爲什麼我的投票低?任何反饋讚賞! – 2010-03-05 02:28:03

+0

像這樣的字符串連接通常在Python中被忽略。建立一個字符串列表然後「加入」它們(或者,如果OP希望繼續使用類似文件的對象,使用'StringIO'),效果會更好(風格和效率)。有關更多信息,請參閱http://wiki.python.org/moin/PythonSpeed/PerformanceTips#StringConcatenation和http://www.skymind.com/~ocrow/python_string/。 – 2010-03-05 17:43:34

+0

 謝謝! – 2010-03-05 18:24:27

-1
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

這一個似乎工作!謝謝了很多=) – Pevo 2010-03-04 23:56:50

+0

誰對此低估了,爲什麼? – 2010-03-05 00:48:35

-1

擺脫所有提及GE_DB的。

做一個 outputtext = "" 開始。

更換GE_DB.write(col.string if col.string else '')outputtext += col.string if col.string else ''