An alternative similar to @jbaiter's solution is to use a local function. This avoids having to pass an extra argument, producing slightly more readable code.
You can also avoid the use of exceptions in the first place:
def find_field(name):
x= b.find(itemprop=name)
return "".join(x.contents) if hasattr(x,'contents') else ""
name, phone, fax = map(find_field, ['name','phone','fax'])