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

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

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

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

Q&A

2回答

2769閲覧

AttributeError: 'str' object has no attribute 'get_text'

yusuke_0923

総合スコア3

Python

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

0グッド

0クリップ

投稿2021/03/25 07:11

Webスクレイピングをしようとしています。
情報を入手しようとしているサイトについてはとりあえず選んだだけなので他意はないです。
どうしたら解決しますでしょうか。

###エラーコード

Traceback (most recent call last): File "C:\test2\sub0322.py", line 28, in <module> print(v.get_text().replace(" ","")) AttributeError: 'str' object has no attribute 'get_text'

###ソースコード

python

1from bs4 import BeautifulSoup 2import urllib.error,os 3import urllib.request 4import time,datetime 5import pandas as pd 6import numpy as np 7 8shop_list = ['01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22'] 9 10url_list = ['https://www.y-minmin.com/shop#a{0}'.format(shop) for shop in shop_list] 11 12print(len(url_list)) 13for url in url_list: 14 print(url) 15 16 17ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100' 18 19req = urllib.request.Request(url_list[0], headers={'User-Agent':ua}) 20html = urllib.request.urlopen(req) 21 22soup = BeautifulSoup(html,("html.parser")) 23 24 25addres_list = soup.find_all(['td']) 26 27for k,v in enumerate(shop_list): 28 print(v.get_text().replace(" ",""))

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

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

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

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

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

guest

回答2

0

for k,v in enumerate(shop_list):

shop_list (文字列のリスト)ではなく address_list (DOM要素のリスト)を指定したいのではありませんか?

投稿2021/03/25 07:45

編集2021/03/25 07:49
int32_t

総合スコア21695

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

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

ppaul

2021/03/25 07:47

なるほど、こちらの方がありそうですね。
guest

0

python

1for k,v in enumerate(shop_list): 2 print(v.get_text().replace(" ",""))

は、

python

1for k,v in enumerate(shop_list): 2 print(v.replace(" ",""))

でしょう。

投稿2021/03/25 07:44

ppaul

総合スコア24670

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問