Make it possible with Python.

最近Pythonから離れ気味、その他物作りに寄り気味です。

エラー AttributeError: 'module' object has no attribute 'html' に対処

相変わらず月に1回くらい、長期記憶を鍛えるかのように一進一退のpythonのコーディングに取り組んでいます。

これからGWくらいで、某アカウントアグリゲーションサービスのスクレイピングをしようとしています。 Webサービスにするとセキュリティが問題になるので、ローカルだけで動かすツールにします。

このサイトを参考に基礎から勉強中。うまく行くのでしょうか。

qiita.com

今日の引っかかりはこんなエラー。

AttributeError: 'module' object has no attribute 'html'

なんか・・・1年くらい前に見た記憶がありますが、原因と対処を思い出せません。

エラー発生時のコードはこれ。

import lxml

a= open(r"201502.htm", "r", encoding='utf-8')

target_html = a.read()

root = lxml.html.fromstring(target_html)

調べた結果、原因は下記URLにあるように、importの記載ミスでした。

python import statement semantics - Stack Overflow

lxmlは moduleだけど、html のattributeは読み込み忘れていたので、moduleに存在しないといわれているエラーでした。

1行目を

import lxml.html

に直して、module内に.htmlを取り込む(?)ことで解決。

すっきり。