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

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

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

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

Python

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

Q&A

解決済

2回答

6502閲覧

python3でstr()が使えない

yukihiko5314

総合スコア19

Python 3.x

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

Python

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

0グッド

0クリップ

投稿2016/09/29 16:31

python3でスクレイピングをしているのですがURL先のhtmlのコードを文字列として違う変数に格納しようとしているのですがstr()が使えません。エラーはこう表記されています。

python

1 st_r = str(link) 2TypeError: 'str' object is not callable

python

1#!usr/bin/env python 2# -*-coding:utf-8 -*- 3 4import urllib.request 5from bs4 import BeautifulSoup 6 7url = "http://news.yahoo.co.jp/" 8htmlfp = urllib.request.Request(url) 9htmlfp = urllib.request.urlopen(htmlfp) 10html = htmlfp.read().decode("utf-8", "replace") 11htmlfp.close() 12 13soup = BeautifulSoup(html) 14for link in soup.findAll("a"): 15 st_r = str(link) 16 judge = "http://news.yahoo.co.jp/pickup/" 17 if st_r.find(judge): 18 start = st_r.find(judge)-1 + len(judge) 19 end = start + 6 20 get_url = judge + st_r[start:end] 21 print (get_url)

strを変数に使ってないのにエラーがでて原因がよくわかりません。原因を教えて下さい。

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

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

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

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

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

guest

回答2

0

ベストアンサー

strを変数に使っていないとありますが、エラー自体はfor文先頭の以下で起きていると思われます。

Python

1st_r = str(link)

link(オブジェクト)に対してstrがコールできないというエラーのようです。
linkオブジェクト(Aタグ)内のテキストが欲しい場合は以下のようにすれば可能ではないでしょうか。

Python

1st_r = link.text

※追記
href属性がほしいようなので、以下で取得できると思います。

Python

1st_r = link.get("href")

投稿2016/09/29 22:41

編集2016/09/29 22:45
goute

総合スコア216

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

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

yukihiko5314

2016/10/03 13:11

うまくいきました。ありがとうございます!
guest

0

例示のコードでは、特にエラーは発生しないようですが...

投稿2016/09/29 17:12

EloiseSeverin

総合スコア50

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問