<p>我正在编写一段python代码,从一个网站获取数据。桌子布置得很好,大部分时间一切正常。你知道吗</p>
<p>但是,当解析器遇到空白字段时,它会完全忽略它。我需要它来计算空白,但我不知道如何做到这一点。你知道吗</p>
<p>问题在于我正在使用的一些数组给我带来了<code>out of bounds</code>错误。你知道吗</p>
<p>不管怎样,这是我的代码:</p>
<pre><code>class MyParser(HTMLParser):
def __init__(self, *args, **kwargs):
#There are only 2 tables in the source code. Outer one is useless to me
self.outerloop = True
#Set to true when we are in the table, and we want to collect data
self.capture_data = False
#Array to store the captured data
self.dataArray = []
HTMLParser.__init__(self, *args, **kwargs)
def handle_starttag(self, tag, attrs):
if tag == 'table' and self.outerloop:
self.outerloop=False
elif tag=='td' and not self.outerloop:
self.capture_data=True
elif tag=='th':
self.capture_data=False
def handle_endtag(self, tag):
if tag == 'table':
self.capture_data=False
def handle_data(self, data):
if self.capture_data:
self.dataArray.append(data)
#Function to call the parser
def getData(self):
self.p = MyParser()
url = 'http://www.mysite.com/get.php'
content = urllib.urlopen(url).read()
self.p.feed(content)
val=0
resultString=""
while val < len(self.p.dataArray):
resultString+=self.p.dataArray[val]+","
val+=1
return HttpResponse(resultString[:-1])
</code></pre>
<p>问题在于<code>handle_data</code>函数。不知何故,我需要告诉它将<code><td></td></code>存储为<code/>,例如一个空白字符串。这一点很重要,因为我将字符串作为逗号分隔的值列表输出到我的网页,如底部所示。你知道吗</p>
<p>如果有人能帮我,我会非常感激的。你知道吗</p>
<p>谢谢。你知道吗</p>