こんにちは
スクレイピングして取得したデータをスプレッドシートのセルに更新したいのですが、
beautifulsoup+for文で取得したデータをスプレッドシートに入れ込む方法がわからず質問させていただきました。
gspreadを使用しています
例えば、
python
1URL = soup.select('div.p-body') 2for t in URL: 3 if t.get('href'): 4 print(t.get('href'))
としたときに上記のコードで以下URLが出力されます
- https://xxx.com/aaa/
- https://xxx.com/bbb/
- https://xxx.com/ccc/
- https://xxx.com/ddd/
- https://xxx.com/eee/
100種類ほどあります
ご質問
このデータをスプレッドシートのB列1行目から100行目まで順番に入れていくためにどのようにしたらよろしいでしょうか
理想
スプレッドシート b1セル→https://xxx.com/aaa/が表示される
スプレッドシート b2セル→https://xxx.com/bbb/が表示される
スプレッドシート b3セル→https://xxx.com/ccc/が表示される
というように1行に一つのデータを入れ込んでいきたい
試してみたこと
python
1cell_list = worksheet.range('b1:b100') 2for t in URL: 3 if t.get('href'): 4 for cell in cell_list: 5 cell.value = t.get('href') 6 worksheet.update_cells(cell_list)
結果
スプレッドシートのb1-b100セルに
スクレイピングで一番初めに取得したURLが入ってしまいます。
https://xxx.com/aaa/
追記
①現状cell_listに上限100セルを更新するように設定しております
cell_list = worksheet.range('b1:b100')
今後取得するURLが100を超えた場合を考えて動的にcell_listを変更したいと考えております。
皆さんはどのようにcell_listを設定しているかをお聞きしたいです。
長くなってしまい、申し訳ございませんが、ご回答いただければ幸いです。
どうぞ、よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/29 03:09