def test_rc(self): """ Run created test :return: """ # ichiro suzuki(2004) rc = Stats.rc(320, 262, 49, 4, 11, 6, 3, 2, 36, 63, 704, 19) self.assertEqual(rc, 132.09)
def test_rc27(self): """ Run created 27 test :return: """ # ichiro suzuki(2004) rc = Stats.rc(320, 262, 49, 4, 11, 6, 3, 2, 36, 63, 704, 19) rc27 = Stats.rc27(rc, 704, 262, 2, 3, 11, 6) self.assertEqual(rc27, 7.69)
def parse(self, response): """ 選手一人分の打撃成績 :param response: 取得した結果(Response) :return: 打撃成績 """ for tr in response.xpath('//*[@id="stdivmaintbl"]/table').xpath('tr'): item = BatterItem() if not tr.xpath('td[2]/text()').extract_first(): continue item['year'] = self.year item['team'] = Util.get_team(response.url) item['bat'] = self._get_bat( Util.get_text(tr.xpath('td[1]/text()').extract_first())) item['name'] = Util.get_text( tr.xpath('td[2]/text()').extract_first()) item['games'] = Util.text2digit( tr.xpath('td[3]/text()').extract_first(), digit_type=int) item['pa'] = Util.text2digit( tr.xpath('td[4]/text()').extract_first(), digit_type=int) item['ab'] = Util.text2digit( tr.xpath('td[5]/text()').extract_first(), digit_type=int) item['r'] = Util.text2digit( tr.xpath('td[6]/text()').extract_first(), digit_type=int) item['h'] = Util.text2digit( tr.xpath('td[7]/text()').extract_first(), digit_type=int) item['double'] = Util.text2digit( tr.xpath('td[8]/text()').extract_first(), digit_type=int) item['triple'] = Util.text2digit( tr.xpath('td[9]/text()').extract_first(), digit_type=int) item['hr'] = Util.text2digit( tr.xpath('td[10]/text()').extract_first(), digit_type=int) item['tb'] = Util.text2digit( tr.xpath('td[11]/text()').extract_first(), digit_type=int) item['rbi'] = Util.text2digit( tr.xpath('td[12]/text()').extract_first(), digit_type=int) item['sb'] = Util.text2digit( tr.xpath('td[13]/text()').extract_first(), digit_type=int) item['cs'] = Util.text2digit( tr.xpath('td[14]/text()').extract_first(), digit_type=int) item['sh'] = Util.text2digit( tr.xpath('td[15]/text()').extract_first(), digit_type=int) item['sf'] = Util.text2digit( tr.xpath('td[16]/text()').extract_first(), digit_type=int) item['bb'] = Util.text2digit( tr.xpath('td[17]/text()').extract_first(), digit_type=int) item['ibb'] = Util.text2digit( tr.xpath('td[18]/text()').extract_first(), digit_type=int) item['hbp'] = Util.text2digit( tr.xpath('td[19]/text()').extract_first(), digit_type=int) item['so'] = Util.text2digit( tr.xpath('td[20]/text()').extract_first(), digit_type=int) item['dp'] = Util.text2digit( tr.xpath('td[21]/text()').extract_first(), digit_type=int) item['ba'] = Util.text2digit( tr.xpath('td[22]/text()').extract_first(), digit_type=float) item['slg'] = Util.text2digit( tr.xpath('td[23]/text()').extract_first(), digit_type=float) item['obp'] = Util.text2digit( tr.xpath('td[24]/text()').extract_first(), digit_type=float) item['ops'] = item['slg'] + item['obp'] if item['pa'] != 0: item['rc'] = Stats.rc(item['tb'], item['h'], item['bb'], item['hbp'], item['cs'], item['dp'], item['sf'], item['sh'], item['sb'], item['so'], item['ab'], item["ibb"]) item['rc27'] = Stats.rc27(item['rc'], item['ab'], item["h"], item['sh'], item['sf'], item['cs'], item['dp']) else: item['rc'] = 0 item['rc27'] = 0 yield item