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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
577
(1): 2023/02/23(木)18:25 ID:n1e6/0k5(1/2) AAS
www.kojima.net/robots.txt

User-Agent: *
Disallow:

これは、Disallowに、/ が無いから、
すべてのクローラーのサイト内巡回を許可しているのか?

Ruby, Nokogiri で、12件でやってみた
www.kojima.net/ec/prod_list.html?cate=tv_recorder&limit=1&sort=1&page=6

構造としては、ポイントがある場合、
価格部分のHTML・<p class="price small mt1"> の次の兄弟に、
ポイント部分のHTML・<p class="point small mt1"> が来るはず。
もし、これが来なければ、0 ポイントのHTML片を作って、価格部分の次の兄弟に挿入する

require "nokogiri"

=begin
価格部分のHTML

<p class="price small mt1">
<span class="number">6,350</span>
<span class="yen">円(税込)</span>
</p>
=end

次へ続く
578: 577 2023/02/23(木)18:26 ID:n1e6/0k5(2/2) AAS
# 0 ポイント部分の、HTML を作る
Point_Str = <<"EOT".gsub( /\n/, "" ) # 改行を削除する
<p class="point small mt1">
<span class="number">0</span>
<span class="rate">ポイント(10%)</span>
</p>
EOT

# ローカルPC にダウンロードした、HTMLファイルに対して処理する
index_path = File.join(__dir__, 'index.html')
doc = Nokogiri::HTML( File.read index_path )

li_css = '#fwCms_wrapper > div > div > div.layoutGrid > div.fwCms_box.frame_MB > div.ProductList.MK2PFRDL010_01 > div > ul > li'
price_css = 'p.price.small.mt1'
point_css = 'p.point.small.mt1'
# li_css + ' > p.point.small.mt1 > span.number'

doc.css( li_css ).each do |li|
# li_css の直下に、point_css が存在しない場合
if ( li > point_css ).length == 0
point_node = Nokogiri::HTML::DocumentFragment.parse Point_Str

# li_css の直下のprice_css の次の兄弟に、point_css を挿入する
price_node = ( li > price_css ).first
price_node.next = point_node
end
end

doc.css( li_css + ' > ' + point_css ).each do |p_node|
# ポイントのカンマを削除してから、整数型に変換する
p Integer( ( p_node > 'span.number' ).first.content.gsub( /,/, "" ) )
end
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.030s