The invention discloses a method for the noninvasive measurement of blood spectra and components, which comprises the following steps: 1, adopting a high-speed optical spectrometer to continuously measure the transmitted spectra of a measured body: Alambda:{A1, A2, A3, ellipsis, Am}, {A1, A2, A3, ellipsis, Am}, ellipsis {A1, A2, A3, ellipsis, Am}; 2, sequencing light intensity values of all wavelengths according to the time for a plurality of continuous spectra to obtain a pulse wave of each wavelength: A1: {A1, A1, A1, ..., A1}, A2:{A2, A2, A2, ellipsis, A2}, ellipsis, A1:{Am, Am, Am, ellipsis, Am}; 3, performing Fourier transformation on the pulse wave of each wavelength, taking a harmonic wave aj with the maximum amplitude value, and rearranging the amplitude value of the harmonic wave of each wavelength according to a time sequence to form a spectrum {a1, a2, a3, ellipsis, am} which is an artery blood spectrum for an artery part, wherein i is the harmonic wave with the maximum amplitude value, and j is the wavelength; and 4, performing stoichiometric analysis on the artery blood spectrum so as to detect out the blood components in a noninvasive mode. The method does not need to collect blood directly, cannot cause any damages and infections to a human body, can achieve real-time monitoring, and cannot cause secondary pollution.