我正在尝试在给定的页面上查找所有电子邮件地址并使用正则表达式进行匹配。我使用BeautifulSoup获取所有的标签。
然而,当我运行我的脚本时,它的这一部分出现了TypeError: expected string or buffer。我猜这是因为email是一个BeautifulSoup对象,而不是一个Python字符串。我已经尝试使用str()或者str()将其转换为字符串,但两者都返回另一个错误:UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position 9: ordinal not in range(128)。我应该怎么做才能避免这些错误,并让我的脚本正常运行呢?我已经没有任何想法了,请帮帮我!
email_re = re.compile('[A-Za-z0-9\.\+_-]+@[A-Za-z0-9\._-]+\.[a-zA-Z]*')
email = soup.findAll("a")
for j in email:
email = j.string
for match in email_re.findall(email):
outfile.write(match + "\n")
print match
然而,当我运行我的脚本时,它的这一部分出现了TypeError: expected string or buffer。我猜这是因为email是一个BeautifulSoup对象,而不是一个Python字符串。我已经尝试使用str()或者str()将其转换为字符串,但两者都返回另一个错误:UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position 9: ordinal not in range(128)。我应该怎么做才能避免这些错误,并让我的脚本正常运行呢?我已经没有任何想法了,请帮帮我!
outfile.write(match + "\n")
吗? - Aleksei Zyrianov