[過去ログ] くだすれPython(超初心者用) その48【まず1嫁】 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
170
(1): デフォルトの名無しさん [sage] 2020/06/07(日) 15:15:18.61 ID:dFrIri+F(1/4) AAS
>>167
要素がないケースのハンドリングはPythonではシンプルには書けない
3.8のassignment expressionとif-elseで我慢

"title": item_name.text if (item_name := product.select_one('.item-name')) else ""
175
(1): デフォルトの名無しさん [sage] 2020/06/07(日) 19:08:27.52 ID:dFrIri+F(2/4) AAS
>>171
dictionaryのvalueに書けるのはexpressionのみでstatementは無理なんじゃね
どっかに書いてると思うけどどこ見ればいいのかは知らないので探してみて

>上のように"price"がある場合はelse "",とすれば良いのでしょうか?
そだね
試せばわかるよね
178
(1): デフォルトの名無しさん [sage] 2020/06/07(日) 22:34:03.60 ID:dFrIri+F(3/4) AAS
>>176
>試して動きませんでした。
うそーん、ちゃんと3.8使ってる?
これ動いてる例
https://repl.it/repls/OlivedrabKaleidoscopicLoops
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も自由にかける
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.050s