[過去ログ] くだすれPython(超初心者用) その48【まず1嫁】 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
177
(2): デフォルトの名無しさん [sage] 2020/06/07(日) 21:45:53.58 ID:6qpSxt73(3/3) AAS
ていうか一発でdictに一式追加して返そうとするから話がややこしい(普通そんなことしないから)んであって
空のdict作って
if product.find(class_="item-name") is not None: p["title"] = product.find(class_="item-name").text
とかで順次追加していけば簡単にできる
というか普通はそうする

それかセレクタがすべてクラスなら内包表記使って一発で書ける
product.find(class_="selector") の返り値が Noneでないときだけを含む内包表記でOK
179: デフォルトの名無しさん [sage] 2020/06/07(日) 23:23:32.18 ID:dFrIri+F(4/4) AAS
>>177
普通はメソッド抽出からやると思うな
スクレイピングとかでなくちゃんとした仕事のコードなら
クラスやNamedTuple切って初期化コードを書くかも

def extract_text(html, selector):
return element.text if (element := html.select_one(selector)) else ""

メソッドにすればexpressionだけでなくstatementも自由にかける
181: デフォルトの名無しさん [] 2020/06/08(月) 12:33:57.05 ID:YfXxGcAQ(1) AAS
>>177
普通はしないことなんですね。ありがとうございます。
全てクラスで取得しているので内包表記で書いてみます。

>>178

再度3.8を確認して試してみたら動きました。
普段Jupyterの3.7を使っていますが3,8が良いのでしょうか?
新しいバージョンだとモジュールが読み込まないことがあるので古い方を使っています。

>>180
ありがとうございます。後から理解がついてくるからわからなくても、とりあえず手を動かしてコードを書けという意見、
ゆっくり1つ1つ理解して書くのが良いという意見どちらもありますね。
難しいこともありどこまで基本なのかかわからないですが理解できるように頑張ります。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.052s