pythonでスクレイピングした結果をスプレッドシートに連携しています。
子要素のタグ名をセルに表示させたい場合、どのようにしたらよろしいでしょうか。
Python
1import gspread 2import requests 3from bs4 import BeautifulSoup 4from oauth2client.service_account import ServiceAccountCredentials 5import time 6 7url = "https://sample?pid=12345" 8r = requests.get(url) 9soup = BeautifulSoup(r.text, 'lxml') 10 11elements = soup.select(".oya") 12 13for index, e in enumerate(elements): 14 num_a = index+1 15 wks.update_acell('A'+str(num_a), e.get_text())
ちなみにurl = "https://sample?pid=12345"のサイトのHTMLは以下のような構成です。
HTML
1<body> 2 <p class = "oya"> 3 <i class = "ko_01">サンプル</i> 4 </p> 5 <p class = "oya"> 6 <i class = "ko_02">サンプル</i> 7 </p> 8 <p class = "oya"> 9 <i class = "ko_03">サンプル</i> 10 </p> 11</body>
この場合の抽出結果が以下の通りです。(A列)
サンプル サンプル サンプル
希望としては、これを以下の通りに表示させることです
#抽出結果 <i class = "ko_01">サンプル</i> <i class = "ko_02">サンプル</i> <i class = "ko_03">サンプル</i>
また可能であればclass名だけ抽出したいです
#抽出結果 ko_01 ko_02 ko_03
e.get_text()が影響しているように思えるのですが、それ以外でタグの中身を表示する方法が見つけられず、、
どなたかご教示いただけますと幸いです。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/07 01:30
2020/08/07 07:38 編集
2020/08/07 13:12