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

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

新規登録して質問してみよう
ただいま回答率
87.20%
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Python

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

受付中

pythonで'type' object is not iterableのエラーが出ます。

gengen0828
gengen0828

総合スコア1

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Python

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

1回答

0評価

0クリップ

398閲覧

投稿2022/01/06 07:03

100のurlを格納したリストを活用しwebスクレイピングしたいのですが、
繰り返し処理が上手くいっておらず、同じ要素が繰り返し取得してしまいました。
下から4行目のコードを記載したところ'type' object is not iterableのエラーが出ます。
ご教授お願いいたします。
※記載のコードで全てです。

該当のソースコード

from bs4 import BeautifulSoup
import urllib.request as req
import urllib
import os
import time
from urllib.parse import urljoin
import requests
from bs4 import BeautifulSoup

#URLを指定
url ='https://www.jpubb.com/glist.php?industry=%E9%8A%80%E8%A1%8C'

#GETリクエストを送信
reqs = requests.get(url)

#URLをテキスト化し、解析を行う。その後BeautifulSoupオブジェクトを作る
soup = BeautifulSoup(reqs.text, 'html.parser')

#空のurlsのリストを用意
urls = []

#全てのaタグをループ処理し、hrefで指定されたURLを出力する
for link in soup.find_all(class_="bold"):
print("https:"+link.get('href'))
tmp = "https:"+link.get('href')
urls.append(tmp)

#****************ここまでが元のurlを取得する作業。urlsの要素数は100

#URLを指定
baseurl_list =urls
for urls in baseurl_list:

#GETリクエストを送信
reqs = requests.get(url)

#URLをテキスト化し、解析を行う。その後BeautifulSoupオブジェクトを作る
soup = BeautifulSoup(reqs.text, 'html.parser')

#空のpdfurlのリストを用意
pdfurl = []

#hrefで指定されたURLを出力する
for baseurl_list in list:
for list in soup.find_all(target="_blank"):
print(link.get('href'))
pdfurl.append(link.get('href'))

baseurl_listには100のurlが格納されています。一つづつwebスクレイピングするにはどのようにコードを記載すれば良いか教えてほしいです。


良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

melian

2022/01/06 07:25

'type' object is not iterable というエラーが出るのは、list という名前の変数を使っているためです。 for baseurl_list in list: でもこれは、 for lst in baseurl_list: とするのではないでしょうか(in list ではなく in baseurl_list とする)。
quickquip

2022/01/06 07:47

コードは普通に読める状態でお願いします。(あとから編集可能です)
gengen0828

2022/01/06 23:45

ご回答ありがとうございます。 エラーを消すことが出来ました
gengen0828

2022/01/06 23:46

quickquipさん ご指摘ありがとうございます。 次回以降質問する際は読める状態にて投稿致します。
quickquip

2022/01/07 00:43

次回以降ではなくて直してください(とお願いしているのです) https://teratail.com/tour#animateBox8 > また、そうして改善された質問・回答は、同じ疑問を持った別の人にとってもより役立つはずです。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Python

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