我用下面的代碼,找到下載頁面上的電子郵件地址:如何在頁面上找到電子郵件?
page = urlfetch.Fetch(url = 'http://www.toyotabc.ru/vacancy/', deadline = 60)
if page.status_code == 200 and page.content:
regexp = re.compile(
r"(^[-!#$%&'*+/=?^_`{}|~0-9A-Z]+(\.[-!#$%&'*+/=?^_`{}|~0-9A-Z]+)*"
r'|^"([\001-\010\013\014\016-\037!#-\[\]-\177]|\\[\001-011\013\014\016-\177])*"'
r')@(?:[A-Z0-9-]+\.)+[A-Z]{2,6}$', re.IGNORECASE)
email = regexp.findall(page.content)
if email:
email = email[0]
self.response.out.write('e-mail found: %s<br>' % (email))
但它沒有返回值(email
是False
),當在代碼中給出的示例頁面上存在的電子郵件。 我的代碼有什麼問題?
表達式'r'\ w + @ \ w + \。\ w {2,6}''似乎適用於我 - 這是否適合您的情況? – RocketDonkey
@RocketDonkey,是的,它的工作原理。但它不會捕獲帶有點的電子郵件 - [示例](http://pythonre.appspot.com/?pattern=\w%2B%40\w%2B\.\w {2%2C6}&string = test.email%40example.com&功能=&的findall標誌= IGNORECASE)。 –
@LA_:修改RocketDonkey的表達式以使用正確的字符而不是'\ w'很簡單。比調試你正在開始的一大堆正則表達式要容易得多。你從哪裏得到這些信息,以及爲什麼所有那些有控制字符的東西? – abarnert