私のスクリプトはimaplib
で電子メールの受信トレイからHTMLコードを取得し、BeautifulSoup
に渡して、href
をすべて抽出しようとしています。改行でBeautifulSoupがデータを抽出できないようにする
rv, data = M.SEARCH(None, '(FROM "[email protected]")')
if rv == 'OK':
for num in data[0].split():
typ, data = M.fetch(num, '(RFC822)')
html = data[0][1]
soup = BeautifulSoup(html, 'lxml')
for a in soup.find_all('a', href=True):
print a['href']
しかしhtml
変数を正確にhref
、新しいラインによって分割されており、特に長いものを返すからBeautifulSoupを防止し、新しい行ごとN
文字を持っているHTMLコードが含まれています。
Theresは=0D
と3D
のような奇妙な文字もどこにでもあります。
messages, <a=0D
href=3D"http://links.google.com/wf/click?upn=3DOGGGYNMPA980E3DmngbHusD=
Uo-2BK17XLM3ogFJfQXXXfMWZLdsQSSVv33HbPoHPXGcH8tSf9ZFFU5i-2FrV4O6ISlpDCIVaN5=
83xr1CGoa5yxZimagE5JiSUAhbZH8P7WiNvf35BsXrCxmrmRLMGB-2BJAQ-3D-3D_IcMuwcQVVt=
a699aeVjRRVxwBCNHkXaWO-2FyIlAqZ7CPsryDB24UVYZbMIvGLJb13chayC-2FLeucv-2FTrko=
7LaiaWHkzy85DWXrK1olI1SEJZs-2BMCAWfoVfloGJivlLSH0GQk0XeVT0j383tZrsymuWLF0S2=
q5j3LR91e76dRXQe7p8t5CgrBe-2FqGk6bmURG9XCNw3dwpHnymaR-2FggHQx6GnbbueF7PVp2H=
-2BGoHUEkMOSXJ8FfSgQIiGICvxz1zcBJPw-2FRoE3YDl-2By8XETkXjVaNchNA1ZN8FDCD5VUf=
V9oUOnavAirXX-2FEw1THfSpV4VYDX">unsubscribe</a></td>=0D
</tr>=0D
<tr>=0D
<td height=3D"12"></td>=0D
</tr>=0D
我々はこの問題を解決するために何ができますか?
あなたが抽出試すことができます'BeautifulSoup'に依存せずに正規表現を使用する' href's – shiva