司马迁最早对《山海经》的真伪提出了质疑。司马迁认为,张骞考察过黄河,没有什么昆仑、醴泉、瑶池,因此认为《禹本纪》不可信。
对于《山海经》,他没有具体论证考察,只是由此推出《山海经》中的怪物也不可信,所以他不敢言。对于怪物以外的整个《山海经》他并没有否定。
这种说一套做一套的作派是什么原因促成的呢?司马迁《报任安书》说出了他内心的矛盾和恐惧:
身直为闺阁之臣,宁得自引深藏于岩穴邪!故且从俗浮沉,与时俯仰,以通其狂惑。今少卿乃教之以推贤进士,无乃与仆之私心剌谬乎?今虽欲自雕琢,曼辞以自饰,无益,于俗不信,适足取辱耳。要之死日,然后是非乃定。”
司马迁无法回避刘邦建国的政治权术,如斩白蛇起义等,于是他为自己的做法进行了辩护。《史记·封禅书》说:
或曰:“自古以雍州积高,神明之隩,故立畤郊上帝,诸神祠皆聚云。盖黄帝时尝用事,虽晚周亦郊焉。”其语不经见,缙绅者不道。
《山海经》历时已久,难以确定其具体的时代,因此其中涉及的怪物很多也无从查证,因此自然不会写入历史。
而像刘邦家族的感生、龙象之类,明知是权谋编造,也照录不误。至于《诗经》等经典如玄鸟生商、履大人迹之类神话一律收录,连当时刘邦斩白蛇起义之类皆收进去。因此形成了《史记》特殊的形态和矛盾表现,因此不能因为司马迁的质疑蔑视就说其是神话书和妖怪书。