私はhtml.parserとurllib.requestを使用しています。私は非ネイティブモジュールを使用するつもりはありませんが、必要であれば他のネイティブモジュールを使用しています。 現在(の一部)私のコードは次のようになります。特定の行のhtmlタグ内のテキストを取得したい
class MyHTMLParser(HTMLParser):
def handle_data(self, data):
if self.getpos()[0] == 167:
print(self.data)
私が午前問題はHTMLParser.getposは常にxは毎回増加数であるのタプル(1、X)を、返すことですしかし、一見ランダムに)、次のように:
(1, 21) (1, 41) (1, 51) (1, 77) (1, 134) (1, 206) (1, 406) (1, 509) (1, 553) (1, 627) (1, 680) (1, 784) (1, 1143) (1, 1368)
私は、全体のhtml.parserモジュールは非常に愚かな方法で書かれており、より良い考え抜かれている可能性のように感じます。明らかにそれは動作しますが、直観に反します。
全コード:
from urllib.request import *
from html.parser import HTMLParser
class MyHTMLParser(HTMLParser):
def handle_data(self, data):
print(self.getpos())
if self.getpos()[0] == 167:
print(data)
parser = MyHTMLParser()
html = urlopen("https://www.azlyrics.com/lyrics/aha/takeonme.html").read()
parser.feed(str(html))
あなたのコードは正しいことをしていますか? HTMLの167行目を印刷しようとしていますか?解析しているHTMLの外観を教えてください。 (もし1行目だけだとすれば、1行のファイルだと思います)。また、私は実際にあなたが愚かな使用を主張するPythonライブラリを呼び出すものが質問に追加されているかどうかは分かりません。 –
HTMLは[this](https://www.azlyrics.com/lyrics/aha/takeonme.html)のようなページです。私は、常に167行目にあるdivタグの中から歌詞(文字列)データを取り出し、それを文字列変数に代入しようとしています。私はそれが愚かであると言っています。なぜなら、おそらくより直感的なモジュールを使用することは、他人に警告するためです。私は学校コンピュータがネイティブモジュールしか持っていないので、私はそれを使用する必要がありません。私はBeautifulSoupを使用するように5人を教えないようにしています。 – Feesih0ps
その出力を生成している完全なコードサンプルを投稿できますか?それは私にとってうまくいっているようだ。 –