argument of type 'NoneType' is not iterable エラーについて
解決したいこと
argument of type 'NoneType' is not iterableというエラーが発生しています。
あるホームページの2ページ目から10ページ目までにある、特定の単語を含んだURLを集めようとしています。
発生している問題・エラー
argument of type 'NoneType' is not iterable
該当するソースコード
import requests
from time import sleep
from bs4 import BeautifulSoup as bs
url = 'https:xxxxxx//{}/xxxxx'
links = []
for i in range(2,10):
target_url = url.format(i)
r = requests.get(target_url)
sleep(2)
soup = bs(r.text, 'html.parser')
a_tags = soup.find_all('a') #aタグを取得
for a_tag in a_tags:
link = a_tag.get('href')
links.append(link)
target_links = []
for target_link in links:
if 'xxxxx' in target_link:
print(target_link) #ひとつひとつのリンクを目視したいので入れてます
t_links.append(target_link)
ここで、if 'xxxxxx' in target_link': の部分に関して上記のエラーが出てきてしまいます。
自分で試したこと
関数に戻り値が設定されていないと None type というものになってしまうので、それが原因だということは分かりました。
ですが、昨日までこれと同じような流れのコードを書いていたのですがうまく動いていたのが急にエラーになったのでよくわかりません。
正直なところ
for a_tag in a_tags:
link = a_tag.get('href')
links.append(link)
このfor文はエラーが出ないのに、なぜ2つ目のfor文はエラーが出るのか見当がつきません。
関数の戻り値という概念を調べてみましたが、自分の場合はどこに戻り値を設定すればよいのか…
よろしくお願いいたします。