item_nodes = response.css('#datalist tr') #提取大标签
for item_node in item_nodes:
#根据 item 文件中所定义的字段内容,进行字段内容的抓取
item_loader = StockstartItemLoader(item=StockstarItem(),selector=item_node)
item_loader.add_css('code','td:nth-child(1) a::text')
item_loader.add_css('abbr','td:nth-child(2) a::text')
item_loader.add_css('last_trade','td:nth-child(3) span::text')
item_loader.add_css('chg_ratio','td:nth-child(4) span::text')
item_loader.add_css('chg_amt', 'td:nth-child(5) span::text')
item_loader.add_css('chg_ratio_5min', 'td:nth-child(6) span::text')
item_loader.add_css('volumn', 'td:nth-child(7)::text')
item_loader.add_css('turn_over', 'td:nth-child(8)::text')
#.add_css() 第一个参数为容器定义的字段,第二个为提取 td 标签下的子节点(用一个‘:’),依次1,2,3.。。空一格下一个标签,提取其中得文字‘::text’
提取属性值有空格的值,匹配出属性值的某个部分
<p class="star-rating Three">
<i class="icon-star"></i>
<i class="icon-star"></i>
<i class="icon-star"></i>
<i class="icon-star"></i>
<i class="icon-star"></i>
</p>
>>> sel = response.css('div.col-sm-6 product_main')
>>> sel.css('p.star-rating').re_first('star-rating ([A-Za-z]+)')
'Three'