<h4 class="slider_ct_name" id="slider_ct_name">武汉</h4> <!--城市名可以通过获取id为slider_ct_name的h4元素获取-->
... <div class="blk_fc_c0_scroll" id="blk_fc_c0_scroll" style=" 1700px;">
<div class="blk_fc_c0_i">
<p class="wt_fc_c0_i_date">01-28</p>
<!--日期可以通过获取id为blk_fc_c0_scroll下的class为wt_fc_c0_i_date的p元素获取-->
<p class="wt_fc_c0_i_day wt_fc_c0_i_today">今天</p> <p class="wt_fc_c0_i_icons clearfix"> <img class="icons0_wt png24" src="http://www.sinaimg.cn/dy/weather/main/index14/007/icons_42_yl/w_04_27_00.png" alt="雨夹雪" title="雨夹雪">
<!--天气描述可以通过获取id为blk_fc_c0_scroll下的class为icons0_wt的img元素获取-->
<img class="icons0_wt png24" src="http://www.sinaimg.cn/dy/weather/main/index14/007/icons_42_yl/w_04_29_01.png" alt="中雪" title="中雪"> </p> <p class="wt_fc_c0_i_times"> <span class="wt_fc_c0_i_time">白天</span> <span class="wt_fc_c0_i_time">夜间</span> </p> <p class="wt_fc_c0_i_temp">1°C / -2°C</p>
<!--温度可以通过获取id为blk_fc_c0_scroll下的class为wt_fc_c0_i_temp的p元素获取-->
<p class="wt_fc_c0_i_tip">北风 3~4级</p> <p class="wt_fc_c0_i_tip">无持续风向 小于3级</p> </div> <div class="blk_fc_c0_i">
<p class="wt_fc_c0_i_date">01-29</p> <p class="wt_fc_c0_i_day ">星期四</p> <p class="wt_fc_c0_i_icons clearfix"> <img class="icons0_wt png24" src="http://www.sinaimg.cn/dy/weather/main/index14/007/icons_42_yl/w_04_29_00.png" alt="中雪" title="中雪"> <img class="icons0_wt png24" src="http://www.sinaimg.cn/dy/weather/main/index14/007/icons_42_yl/w_07_25_01.png" alt="阴" title="阴"> </p> <p class="wt_fc_c0_i_times"> <span class="wt_fc_c0_i_time">白天</span> <span class="wt_fc_c0_i_time">夜间</span> </p> <p class="wt_fc_c0_i_temp">1°C / -2°C</p> <p class="wt_fc_c0_i_tip">无持续风向 小于3级</p> </div> ... </div>
so, spider代码如下(代码中的xpath和css后面括号的内容为选择器)
# -*- coding: utf-8 -*- import scrapy from weather.items import WeatherItem class WeatherSpider(scrapy.Spider): name = "myweather" allowed_domains = ["sina.com.cn"] start_urls = ['http://weather.sina.com.cn'] def parse(self, response): item = WeatherItem() item['city'] = response.xpath('//*[@id="slider_ct_name"]/text()').extract()
<!--城市名可以通过获取id为slider_ct_name的h4元素获取-->
tenDay = response.xpath('//*[@id="blk_fc_c0_scroll"]');
item['date'] = tenDay.css('p.wt_fc_c0_i_date::text').extract()
<!--日期可以通过获取id为blk_fc_c0_scroll下的class为wt_fc_c0_i_date的p元素获取-->
item['dayDesc'] = tenDay.css('img.icons0_wt::attr(title)').extract()
<!--天气描述可以通过获取id为blk_fc_c0_scroll下的class为icons0_wt的img元素获取-->
item['dayTemp'] = tenDay.css('p.wt_fc_c0_i_temp::text').extract()
<!--温度可以通过获取id为blk_fc_c0_scroll下的class为wt_fc_c0_i_temp的p元素获取-->
return item