前提・実現したいこと
JupyterLabのWebスクレイピングにて、タイトル文字とURLを取得し、リスト化を試しております。
リスト化する前に、title_listに入る、タイトル文字を取得する段階で止まっており、
お分かりになる方が居られましたら、ご教示頂けると幸いです。
使用環境:Mac m1
現在のソースコード
ソースコード from bs4 import BeautifulSoup import urllib.request as req import re url = "https://kino-code.com/category/introductory-course-pandas/" response = req.urlopen(url) parse_html = BeautifulSoup(response,'html.parser') element = parse_html.find_all(href=re.compile("com/pandas")) title_list = [] url_list = [] for i in element: **title_list.append(i.h2)** url_list.append(i.attrs['href'])
試したこと
上記コードで試した結果
for i in element: title_list.append(i.h2) url_list.append(i.attrs['href']) # print結果 print(title_list) [<h2 class="entry-card-title card-title e-card-title" itemprop="headline">Pandas入門講座|14.SeriesやDataFrameに関数を適用する方法(map, apply, applymapメソッド)【PythonのライブラリPandas】</h2> 多数続きます
for文の中にstringを入れるとエラーになりますので、ここのコード入力の仕方をお教え頂けと幸いです。
for i in element: title_list.append(i.h2.h2.string) url_list.append(i.attrs['href']) # エラー内容 --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-177-1f313b25080b> in <module> 3 4 for i in element: ----> 5 title_list.append(i.h2.string) 6 url_list.append(i.attrs['href']) AttributeError: 'NoneType' object has no attribute 'string'
画像では見ずらいのでエラーメッセージはテキストでも記載してください。(「コードの挿入」で記入してください。)
megさん
ご指摘ありがとうございます。
先程、修正内容を反映させたのですが、
for i in element:
title_list.append(i.h2.h2.string)
url_list.append(i.attrs['href'])
↑
この状態でprint(title_list)を実行しましたら、上記エラーは出たままですが、
タイトルのみ出力されました。。。
print(title_list)結果
['Pandas入門講座|14.SeriesやDataFrameに関数を適用する方法(map, apply, applymapメソッド)【PythonのライブラリPandas】', 'Pandas入門講座|13.時系列データの扱い方【PythonのライブラリPandas】'、、、続きます
AttributeError: 'NoneType' object has no attribute 'string'
のエラーは無視でも問題ないでしょうか、、、?
分かりずらい質問になってしまい、申し訳ないです。
回答1件
あなたの回答
tips
プレビュー