私は約50のテーブルを持つHTMLページを持っています。各テーブルには、同じレイアウトを持っていますが、異なる値、例えばと:python - HTMLテーブルを解析する方法
<table align="right" class="customTableClass">
<tr align="center">
<td width="25" height="25" class="usernum">value1</td>
<td width="25" height="25" class="usernum">value2</td>
<td width="25" height="25" class="usernum">value3</td>
<td width="25" height="25" class="usernum">value4</td>
<td width="25" height="25" class="usernum">value5</td>
<td width="25" height="25" class="usernum">value6</td>
<td width="25" height="25" class="totalnum">otherVal</td>
</tr>
</table>
マイRESTサーバので、私のurls.py
に、私は明らかに私はすべてやりたい私のdef parse_url():
関数を呼び出していますジャンゴ/のpythonを実行しています私の問題は、私はかなり多くの初心者は、Pythonになるので、文字通りちょうど私のコードを配置する場所を知りません。私はHTMLParser
のpythonのドキュメントからいくつかのコードを得て、そして次のように変更されました:
import urllib, urllib2
from django.http import HttpResponse
from HTMLParser import HTMLParser
class MyHTMLParser(HTMLParser):
def handle_starttag(self, tag, attrs):
print "Encountered the beginning of a %s tag" % tag
def handle_endtag(self, tag):
print "Encountered the end of a %s tag" % tag
def handle_data(self, data):
HttpResponse("Encountered data %s" % data)
def parse_url(request):
p = MyHTMLParser()
url = 'http://www.mysite.com/lists.asp'
content = urllib.urlopen(url).read()
p.feed(content)
return HttpResponse('DONE')
このコードは、現時点では、便利なdoesntの出力は何も。それはちょうどDONE
を出力します、それは非常に有用ではありません。
handle_starttag()
などのクラスメソッドを使用するにはどうすればよいですか?私がp.feed(content)
を使用すると、これらは自動的に呼び出されますか?
value1
value2
value3
value4
value5
value6
othervalue
これは、ループ内で行われる必要がある、ので:私はmysite.com/showlist
に行くとき
基本的に、私は最終的に達成しようとしているものです、と言っリストを出力することができるようにします各テーブルには値が異なる約50のテーブルがあります。
初心者を助けてくれてありがとう!!
ありがとうございました。これは、私が探していた解決策のようです。それは働いているが、次のようなタブを印刷する:「\ r \ n \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ r \ n \ t \ t \ t \ t \ t \ t \ t \ t '、' \ r \ n \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t \ t ' t \ t \ t '、' 1 '、' t '、' t '、' t '、' t ' '10'、 '32'、 '35'、 '39'、 '45'、 '33'、 '。どのようにこれらをフィルタリングするか考えていますか? – eoinzy
'class = usernum'または' class = totalnum'と一致するデータだけを検索することは可能ですか? – eoinzy
メソッドにnot data.isspace()を追加しました。ノイズをフィルタリングする必要があります。 eoinzyの記述では、attrs varをチェックして追加のフィルタリングを行うことができます。 –