質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.36%

  • Python

    3846questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • Python 3.x

    2425questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

  • スクレイピング

    113questions

[python]BeautifulSoup4をインストールしても反応しない

解決済

回答 3

投稿 2017/11/30 06:42

  • 評価
  • クリップ 0
  • VIEW 82

前提・実現したいこと

はじめまして、ここで初めて質問させていただきます

Pythonでサイトをスクレイピングしようと思っています
そこでBeautifulSoup4をインストールしてスクレイピングしようと思ったのですがいくらやってもエラーが出てしまいます
おそらくBeautifulSoupというモジュールはないという主旨のエラーだと思うのですがどうやったら解決しますか、プログラムも初心者なのでできたら分かりやすく教えていただけますか

スペック
Windows8.1
Python3.6.3
Pycharm

発生している問題・エラーメッセージ

C:\Users\私のユーザー名\PycharmProjects\untitled1\venv\Scripts\python.exe C:/Users/私のユーザー名/PycharmProjects/untitled1/nikkei.py
Traceback (most recent call last):
  File "C:/Users/私のユーザー名/PycharmProjects/untitled1/nikkei.py", line 3, in <module>
    import BeautifulSoup
ModuleNotFoundError: No module named 'BeautifulSoup'

Process finished with exit code 1

該当のソースコード

#coding: UTF-8
import urllib
import BeautifulSoup

url = "https://www.nikkei.com/"

html = urllib.urlopen(url)

soup = BeautifulSoup(html, "html.parser")

title_tag = soup.span

print (title_tag)

試したこと

BeautifulSorpのとこだけ波線が出ていたので認識してないと思いました

importの前にfrom bs4をつけていましたが同じエラーが出ました

from bs4 import BeautifulSoup

BeautifulSoupの他にBeautifulSoup4、beautifulsorp、beautifulsorp4と入力してみましたがまた同じエラーが出ました

インストールしたときにコマンドプロンプトでpipでインストールしようとしたんですが

C:\Users\私のユーザー名>pip install beautifulsoup4
Collecting beautifulsoup4
  Using cached beautifulsoup4-4.6.0-py3-none-any.whl
Installing collected packages: beautifulsoup4
Exception:
Traceback (most recent call last):
  File "c:\program files\python36\lib\site-packages\pip\basecommand.py", line 21
5, in main
    status = self.run(options, args)
  File "c:\program files\python36\lib\site-packages\pip\commands\install.py", li
ne 342, in run
    prefix=options.prefix_path,
  File "c:\program files\python36\lib\site-packages\pip\req\req_set.py", line 78
4, in install
    **kwargs
  File "c:\program files\python36\lib\site-packages\pip\req\req_install.py", lin
e 851, in install
    self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
  File "c:\program files\python36\lib\site-packages\pip\req\req_install.py", lin
e 1064, in move_wheel_files
    isolated=self.isolated,
  File "c:\program files\python36\lib\site-packages\pip\wheel.py", line 345, in
move_wheel_files
    clobber(source, lib_dir, True)
  File "c:\program files\python36\lib\site-packages\pip\wheel.py", line 316, in
clobber
    ensure_dir(destdir)
  File "c:\program files\python36\lib\site-packages\pip\utils\__init__.py", line
 83, in ensure_dir
    os.makedirs(path)
  File "c:\program files\python36\lib\os.py", line 220, in makedirs
    mkdir(name, mode)
PermissionError: [WinError 5] アクセスが拒否されました。: 'c:\\program files\\py
thon36\\Lib\\site-packages\\beautifulsoup4-4.6.0.dist-info'

と出ていたので管理者権限でコマンドプロンプトを開き同じくインストールしたらそのときはインストールできました

C:\WINDOWS\system32>pip install beautifulsoup4
Collecting beautifulsoup4
  Using cached beautifulsoup4-4.6.0-py3-none-any.whl
Installing collected packages: beautifulsoup4
Successfully installed beautifulsoup4-4.6.0
C:\WINDOWS\system32>pip list
DEPRECATION: The default format will switch to columns in the future. You can us
e --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.con
f under the [list] section) to disable this warning.
asn1crypto (0.23.0)
beautifulsoup4 (4.6.0)
cffi (1.11.2)
cryptography (2.1.3)
idna (2.6)
pip (9.0.1)
pycparser (2.18)
pyOpenSSL (17.4.0)
setuptools (28.8.0)
six (1.11.0)


管理者権限でインストールしたことをおもいだしたので
Program filesのアクセス権をフルコントロールしてみましたが同じ結果になりました

もう一度再インストールしてみましたが管理者権限のコマンドプロンプトでしか受付せず結果同じエラーになってしまいます

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+1

pip listの結果からbeautifulsoup4自体のインストールはできているようです。多分素のpythonを直接使うとimportできると思います。問題はPyCharmの設定にあるのだと思います。

詳しくないので推測ですが...PyCharmでプロジェクトを作るとvenvというフォルダーがプロジェクト直下にできていることからPyCharmではプロジェクト毎に異なる環境を作れるようになっているのだと思います。つまりプロジェクト作成直後は「pythonをインストールしただけの状態」になっているのだろうと思います。実際にfrom bs4 import BeautifulSoupとやると「モジュールがない」とエラーになります。

そこで「PyCharm import できない」で検索したところ対処法が書いてあるページがヒットしました。

対処は(自分に分かった限り)2つほどあるようで

対処1:当該プロジェクトにネットワークからモジュールを個別インストール

File>Settings...>Project:プロジェクト名>Project Inspectorとし
右上のProject Interpreter:でPython 3.6(プロジェクト名)を選択した状態で右のほうの緑の'+'ボタンを押す。利用可能なモジュール一覧がでる(これはインターネットの向う側のどっかのリポジトリーに登録されているものの一覧だと思います)ので、ここでモジュールを選択してインストール。最後に右下のApplyボタン&OK

対処2:当該プロジェクトのPython環境をPCのデフォルトに合わせてしまう

File>Settings...>Project:プロジェクト名>Project Inspectorとし
右上のProject Interpreter:でPython 3.6(C:\Program Files\Python\Python36\python.exe)を選択してApplyボタン&OK

対処1だとせっかくPCへインストールしたものをわざわざ個別にインストールすることになるのでしょうからHDDがもったいない気がします。とりあえず対処2にしておくとPCへインストールした全てのモジュールがそのプロジェクトでimportできるようになるみたいです。

なお、常に対処2をするのがめんどくさい場合

File>Default Settings...>Project Inspectorで対処2と同じ操作をすると新規プロジェクトを作成した場合、PCの環境と常にあった状態にすることもできそうです(やってないので想像です)

投稿 2017/11/30 09:29

編集 2017/11/30 09:30

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/11/30 09:31

    YouheiSakuraiさんコメントにあるようにtypo(綴りミス)にも気を付けてください。PyCharm上ではtypoはすぐに気づける(ガイドがでるから)ので間違うことは少ない気がしますが・・・

    キャンセル

  • 2017/11/30 10:30

    回答ありがとうございます
    対処2の方法で行い解決しました

    キャンセル

  • 2017/11/30 10:36

    あ・・・このコメントの方法はご存じだったのかなw;
    今気づきました・・・

    キャンセル

+1

タイポです。

https://www.crummy.com/software/BeautifulSoup/

You can install Beautiful Soup 4 with pip install beautifulsoup4.

pip install beautifulsoup4

それから

from bs4 import BeautifulSoup

です。

投稿 2017/11/30 09:08

編集 2017/11/30 09:14

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/11/30 09:11

    ダメなら

    pip install --upgrade --no-deps --force-reinstall beautifulsoup4

    でパッケージを再インストールしてみてください。

    キャンセル

  • 2017/11/30 10:31

    from bs4を付け加えたら動きました
    回答ありがとうございます

    キャンセル

0

上記の書いたのは動きませんでしたので下記に動いたのを訂正します

#coding: UTF-8
import urllib.request
from bs4 import BeautifulSoup

url = "https://www.nikkei.com/"

html = urllib.request.urlopen(url)

soup = BeautifulSoup(html, "html.parser")

title_tag = soup.span

print (title_tag)

投稿 2017/11/30 10:35

編集 2017/11/30 10:40

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

ただいまの回答率

91.36%

関連した質問

同じタグがついた質問を見る

  • Python

    3846questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • Python 3.x

    2425questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

  • スクレイピング

    113questions