エラー内容
python3でurllib2をimportしようとすると、
ModuleNotFoundError: No module named 'urllib2'
が発生する
原因
urllib2はpython2での書き方で、python3では分割されたモジュールをimportする必要があるらしい。
# import urllib2 # こっちはpython2の書き方 import urllib.request # こっちがpython3
解決サンプル
コード
import urllib.request from bs4 import BeautifulSoup url = "http://example.com"; html = urllib.request.urlopen(url); soup = BeautifulSoup(html, "html.parser") alist = soup.find_all("a") print(alist)
実行結果
$ python3 sample.py [<a href="http://www.iana.org/domains/example">More information...</a>]
参考URL
- PythonとBeautiful Soupでスクレイピング - Qiita
- こちらのコードでurllib2がimportされてたけど、python3で動かなかったので修正してみた。
- 21.5. urllib — URL を扱うモジュール群 — Python 3.6.3 ドキュメント
- 公式ドキュメント。urllibはrequestの他にも、error、parse、robotparserがあるみたい。
雑感
機械学習関連でプログラミング言語pythonが話題になってるけど、 個人的にはWebスクレイピングで使えそうなのでいじってみた。 しょっぱなからpython2とpython3のバージョン差で面食らったのでメモメモ(;´・ω・`)φ

Pythonクローリング&スクレイピング ―データ収集・解析のための実践開発ガイド―
- 作者: 加藤耕太
- 出版社/メーカー: 技術評論社
- 発売日: 2016/12/16
- メディア: Kindle版
- この商品を含むブログを見る