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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

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

Python

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

Q&A

解決済

1回答

1832閲覧

pythonで表示されたエラー「IPython.utils.traitlets has moved to a top-level traitlets package.」の意味を教えて下さい

kutu

総合スコア257

Python 3.x

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

Python

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

1グッド

1クリップ

投稿2020/03/12 08:53

お世話になっております。
環境は下記の通りです

Windows WSL -- Ubuntu18.0.4 python3.7.2

https://torahack.com/python-scraping-for-seo/
に記載されているソース

import requests import bs4 from time import sleep import pandas as pd from google.colab import files import re # 検索したいキーワードを入力する listKeyword = ['python', 'スクレイピング'] # 取得したい件数に合わせて数値を変更する searchNum = str(10) response = requests.get('https://www.google.co.jp/search?num='+searchNum+'&q=' + ' '.join(listKeyword)) response.raise_for_status() # 取得したHTMLをパースする soup = bs4.BeautifulSoup(response.content, "html.parser") file_prefix = "" for word in listKeyword: if (file_prefix == ""): file_prefix += str(word) else: file_prefix += "-" + str(word) fileName = file_prefix+'_Top'+searchNum+'.csv' # csvファイルのヘッダーを設定する df = pd.DataFrame(columns=['URL','タイトル','ディスクリプション','キーワード']) sleepCounter = 0 # 検索結果上位サイトのURLを取得する for a in soup.select('div#search h3.r a'): sleepCounter += 1 url = re.sub(r'/url?q=|&sa.*', '',a.get('href')) try: # 取得したURLを読み込む search = requests.get(url) searchSoup = bs4.BeautifulSoup(search.content, "html.parser") # タイトルの取得 titleList = [] for a in searchSoup.select('title'): titleList.append(a.text) title='' for index,item in enumerate(titleList): if index==0: title = item else: title = title + ', ' +item # ディスクリプションの取得 descriptionList = [] for a in searchSoup.select('meta[name="description"]'): descriptionList.append(a.get('content')) description='No data' for index,item in enumerate(descriptionList): if index==0: description = item else: description = description + ', ' +item # キーワードの取得 keywordList = [] for a in searchSoup.select('meta[name="keywords"]'): keywordList.append(a.get('content')) keywords = 'No data' for index,item in enumerate(keywordList): if index==0: keywords = item else: keywords = keyword + ', ' +item except: #例外処理:サイトを読み込めなかったときにする処理 print('Failed to read web site.') # 取得したURL、タイトル、ディスクリプション、キーワードを追加する outputRow = [url,title,description,keywords] s = pd.Series(outputRow, index=['URL','タイトル','ディスクリプション','キーワード']) df = df.append(s, ignore_index=True) # 10件以上検索する場合、秒間リクエスト数の制限を守るため、10件ごとに10秒の待機時間を設ける if sleepCounter > 10: sleep(10) sleepCounter = 0 # csvに出力する df.to_csv(fileName, index=False) # csvをダウンロードする files.download(fileName)

を実行すると下記のエラーが出ます

/.pyenv/versions/3.7.2/lib/python3.7/site-packages/IPython/utils/traitlets.py:5: UserWarning: IPython.utils.traitlets has moved to a top-level traitlets package. warn("IPython.utils.traitlets has moved to a top-level traitlets package.") Traceback (most recent call last): File "seo2.py", line 97, in <module> files.download(fileName) File "/.pyenv/versions/3.7.2/lib/python3.7/site-packages/google/colab/files.py", line 178, in download 'name': _os.path.basename(filename), File "/.pyenv/versions/3.7.2/lib/python3.7/site-packages/google/colab/output/_js.py", line 35, in eval_js kernel = _ipython.get_kernel() File "/.pyenv/versions/3.7.2/lib/python3.7/site-packages/google/colab/_ipython.py", line 28, in get_kernel return get_ipython().kernel AttributeError: 'NoneType' object has no attribute 'kernel'

サイトの見本ソースを丸々コピーしてもエラーが表示され、うまくいきません。
おわかりになる方いらっしゃいましたらよろしくお願いします。

s.k👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

このコードを一旦何も考えず丸っとコピーしてGoogle Colaboratoryの新しいノートブックに貼り付けてみてください。

と書いてあるとおりgoogle colab専用プログラムだと思います。
自分で変更をしないと動かないです。

投稿2020/04/01 00:59

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問