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

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

新規登録して質問してみよう
ただいま回答率
85.51%
Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Python

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

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

Q&A

解決済

1回答

1732閲覧

UbuntuOSでPythonのコードを実行する際に足りないモジュールについて

退会済みユーザー

退会済みユーザー

総合スコア0

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Python

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

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

0グッド

1クリップ

投稿2018/01/02 00:15

###前提・実現したいこと
PythonスクレイピングのコードをUbuntuOSで動かそうとしています。
参考サイトの「train3.py」を実行しようとしたところ、

$ python train3.py Traceback (most recent call last): File "train3.py", line 4, in <module> import urllib.request as req ImportError: No module named request

とエラーが出たため、

$ $ sudo pip install Requests

は行いましたが、依然として実行できない状況が続いており困っています。

###該当のソースコード

Python

1#train3.py 2# -*- coding: utf-8 -*- 3 4from bs4 import BeautifulSoup 5import urllib.request as req 6import sqlite3 7import re 8 9url = "http://www.keishicho.metro.tokyo.jp/kurashi/higai/kodomo/fushin/20_fushin.html" 10dbname = 'database.db' 11conn = sqlite3.connect(dbname) 12c = conn.cursor() 13table_name = 'test' 14 15# train1の部分 16def get_html(): 17 # urlopen()でデータを取得 18 res = req.urlopen(url) 19 20 # BeautifulSoup()で解析 21 soup = BeautifulSoup(res, 'html.parser') 22 23 # 任意のデータを抽出 24 main = soup.find("div", id="main").find("div", class_="main_inner").find("div", class_="t-box2") 25 news_list = main.find("table").find_all("tr") 26 27 res = [] 28 for news in news_list: 29 res += get_res(news) 30 31 return res 32 33# 記事から情報を抜き出すところ 34def get_res(news): 35 place = news.find('th').string 36 main = news.find('td').find('p').text 37 main_list = re.match('(.*警察署)([0-9]{1,2})月([0-9]{1,2})日((.)曜)、(.*)ころ、(.*)不審者の特徴:(.*)', main).groups() 38 police = main_list[0] 39 date = main_list[1] + main_list[2] + main_list[3] 40 time = main_list[4] 41 body = main_list[5] 42 feature = main_list[6] 43 44 return [(place, police, date, time, body, feature)] 45 46 47def drop_table(tname): 48 # executeメソッドでSQL文を実行する 49 create_table = '''drop table if EXISTS {} '''.format(tname) 50 c.execute(create_table) 51 52# train2の部分 53def create_table(tname): 54 # executeメソッドでSQL文を実行する(型はひとまずcharで入れてます...) 55 create_table = ''' 56create table if NOT EXISTS {} ( 57 place varchar(64), 58 police varchar(32), 59 date varchar(64), 60 time varchar(64), 61 body varchar(64), 62 feature varchar(64))'''.format(tname) 63 c.execute(create_table) 64 65def insert_data(tname, data): 66 # 一度に複数のSQL文を実行したいときは,タプルのリストを作成した上で 67 # executemanyメソッドを実行する 68 insert_sql = 'insert into {0} (place, police, date, time, body, feature) values (?,?,?,?,?,?)'.format(tname) 69 c.executemany(insert_sql, data) 70 conn.commit() 71 72def select_all(tname): 73 select_sql = 'select * from {0}'.format(table_name) 74 res = "" 75 for row in c.execute(select_sql): 76 res += str(row) 77 return res 78 79 80if __name__ == '__main__': 81 drop_table(table_name) 82 create_table(table_name) 83 test = get_html() 84 insert_data(table_name, test) 85 print(select_all(table_name)) 86 87 88 conn.close()

###補足情報(言語/FW/ツール等のバージョンなど)
Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-57-generic x86_64)
Python 2.7.12

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

urllibが入っていないのでは?

sudo pip install urllib

投稿2018/01/02 01:53

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/01/02 03:15

ご回答いただきましてありがとうございます。試みたところ、以下のように表示され、インストールできませんでした。 Collecting urllib Could not find a version that satisfies the requirement urllib (from versions: ) No matching distribution found for urllib
退会済みユーザー

退会済みユーザー

2018/01/02 06:50

すみません。軽くフォローしてしまいましたが、間違いでした。 調べてみたところ、urllib.requestはpython3からのモジュールのようです。 2.7では、かわりにurllib.urlopenを使うようですね。
退会済みユーザー

退会済みユーザー

2018/01/02 13:34

お返事いただきましてありがとうございます。urllib.urlopenはモジュールなのでしょうか。調べてみたのですが、インストールするべきものがよくわかりません。
退会済みユーザー

退会済みユーザー

2018/01/07 06:41

ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問