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

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

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

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

Ubuntu

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

Q&A

1回答

333閲覧

Ubuntu 18.04 LTSで下記のコードを実行しようとするとエラーが出ます。

退会済みユーザー

退会済みユーザー

総合スコア0

Python 3.x

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

Ubuntu

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

0グッド

0クリップ

投稿2019/06/16 02:06

編集2019/06/16 03:05

こんにちは。お世話になります。
Pythonで書いたコードを実行しようとするとエラーがでます。
エラーは下記です。

bash

1$ python3 sel-avocado.py 2Traceback (most recent call last): 3 File "sel-avocado.py", line 6, in <module> 4 print(soup.select_one("li:nth-of-type(8)").string) #(1) 5AttributeError: 'NoneType' object has no attribute 'string'

実行しようとしたコードは下記になります。ファイル名はsel-avocado.pyです。

Python3

1from bs4 import BeautifulSoup 2fp = open("fruits-vegetables.html", encoding="utf-8") 3soup = BeautifulSoup(fp, "html.parser") 4 5# CSSセレクタで選び出す 6print(soup.select_one("li:nth-of-type(8)").string) #(1) 7print(soup.select_one("#ve-list > li:nth-of-type(4)").string) #(2) 8print(soup.select("#ve-list > li[data-lo='us']")[1].string) #(3) 9print(soup.select("#ve-list > li.black")[1].string) #(4) 10 11# findメソッドで選び出す ---- (5) 12cond = {"data-lo":"us", "class":"black"} 13print(soup.find("li", cond).string) 14 15# findメソッドを二度組み合わせる --- (6) 16print(soup.find(id="ve-list") 17 .find("li", cond).string)

補足:fruits-vegetables.html

HTML

1<html><body> 2<div id="main-goods" role="page"> 3 <h1>フルーツや野菜</h1> 4 <ul id="fr-list"> 5 <li class="red green" data-lo="jp">リンゴ</li> 6 <li class="purple" data-lo="us">ブドウ</li> 7 <li class="yellow" data-lo="us">レモン</li> 8 <li class="yellow" data-lo="jp">オレンジ</li> 9 </ul> 10 <ul id="ve-list"> 11 <li class="white green" data-lo="jp">ダイコン</li> 12 <li class="red green" data-lo="us">パプリカ</li> 13 <li class="black" data-lo="jp">ナス</li> 14 <li class="black" data-lo="us">アボカド</li> 15 <li class="white" data-lo="cn">レンコン</li> 16 </ul> 17</div> 18<body></html>

どうすればコードを動かせますか。ご教授願います。

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

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

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

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

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

can110

2019/06/16 02:21

fruits-vegetables.htmlの内容も提示ください。
退会済みユーザー

退会済みユーザー

2019/06/16 03:05

提示しました!
guest

回答1

0

select_oneの結果が何もなければそうなります。事前に結果があるかチェックして下さい。

投稿2019/06/16 02:29

編集2019/06/16 02:30
hichon

総合スコア5737

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問