错误的美丽汤解析

时间:2013-10-11 02:52:59

标签: python parsing url beautifulsoup

使用此代码,我从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()?

1 个答案:

答案 0 :(得分:1)

只需使用str.lstrip()rstrip()即可。这种方法的缺点是,你现在必须要删除它。

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

urls.append(x['href'].lstrip("'3D\"").rstrip("\"=\'"))