前提・実現したいこと
mac、python初心者です。
『独学プログラマー』という参考書で勉強してます。
BeautifulSoup4(4.6.0)を用いてGoogleニュースのurlをスクレイプしたいです。
$pip3 freeze を用いてbs4の4.6.0が入っていることは確認済みです。
beautifulsoup4==4.6.0 click==6.7 Flask==0.12.2 itsdangerous==0.24 Jinja2==2.10 MarkupSafe==1.0 nose==1.3.7 numpy==1.14.2 tornado==5.0.2 Werkzeug==0.14.1
発生している問題・エラーメッセージ
Traceback (most recent call last): File "intro_url.py", line 2, in <module> from bs4 import BeautifulSoup ModuleNotFoundError: No module named 'bs4'
該当のソースコード
python
1import urllib.request 2from bs4 import BeautifulSoup 3 4class Scraper: 5 def __init__(self, site): 6 self.site = site 7 8 def scrape(self): 9 r = urllib.request.urlopen(self.site) 10 html = r.read() 11 parser = 'html.parser' 12 sp = BeautifulSoup(html, parser) 13 for tag in sp.find_all("a"): 14 url = tag.get("href") 15 if url is None: 16 continue 17 if "html" in url: 18 print("\n" + url) 19 20sources = "http://news.google.com/" 21Scraper(sources).scrape() 22
試したこと
いくつかbs4を使っている方の質問やブログを漁ったのですが、importから詰まっている人は見つかりませんでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
import sys print(sys.version)を作成中のスクリプトに追記して、スクリプトを実行しているPythonのバージョンを確認してくださいな。
python -m pip freeze の結果(pythonの部分はあなたが使っているPythonにしてください)と、 pip3 freeze の結果はおなじですか?
3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 12:04:33) [GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] となりました。
python3 -m pip freeze の結果中身が全く違いました。 改めて$sudo pip install beautifulsoup4 を行ったところ解決できました。ありがとうございます。