0

使用此代码,我从 BS 解析中获得以下 URL:

result, data = mail.uid('search', None, "(FROM 'tiffany@e.tiffany.com')") # search and return uids instead
latest_email_uid = data[0].split()[-1]
result, data = mail.uid('fetch', latest_email_uid, '(RFC822)')
raw_email = data[0][1]

html = raw_email
soup = BS(html)

urls=[]
for x in soup.find_all('a', href=True):
    urls.append(x['href'])

print urls

输出

'3D"http://elink.tiffany.com/r/YB7DL5S/32FU1/5A6EIF/QFMQOO/6EN2U/52/h"='

如何去除前 4 个和后 3 个字符?这是我可以在漂亮的汤中做的事情还是应该使用 split()?

4

1 回答 1

1

只需使用str.lstrip()rstrip()。这种方法的缺点是,您现在必须准确地删除要删除的内容。

在这里,当您将它们放入列表时,剥离所有 url:

urls.append(x['href'].lstrip("'3D\"").rstrip("\"=\'"))
于 2013-10-11T03:00:31.967 回答