Wrapper generation for semi-structured Internet sources