couple of points:

Because html has explicit table headers i give those the parsing priority, even if `header=None`. if no `th` elements are found then i use the user's passed value of `header`.