如何从bs4结果中删除字符串?

时间:2017-01-25 23:34:59

标签: python html python-2.7 web-scraping beautifulsoup

编辑:好的,这是我正在使用的代码,usps跟踪号码只有邮局的地址。

import requests
from bs4 import BeautifulSoup

url = "https://tools.usps.com/go/TrackConfirmAction.action?tRef=fullpage&tLc=1&text28777=&tLabels=03030130000309293695"

s = requests.Session()
s.headers['User-Agent'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131     Safari/537.36'
r = s.get(url)
soup = BeautifulSoup(r.text, "lxml")


for Status, Location, Time in map(None, soup.find_all("span", {"class":"info-text"}), soup.find_all("td", { "class":"location"})[1:], soup.find_all("td", { "class":"date-time"})):
    print Time.get_text().strip()

这是我得到的输出。

January 24, 2017

                                                        ,
                                                        7:13 am

这就是我想要它的样子。

January 24, 2017,

7:13

这里也是我正在抓的HTML。

<td class="date-time">
    <p>
        January 13, 2017
        ,
        2:09 pm
    </p></td>
<td class="status">

1 个答案:

答案 0 :(得分:0)

默认情况下,.strip()方法只删除空格,而在您的情况下,您很可能会混合使用换行符和空格,以便更改此尝试:

r = Status.get_text().strip().encode('utf-8')
# to
r = Status.get_text().strip(' \n').encode('utf-8')

' \n' - 由两个字符组成,一个空格和\n代表换行符。任何领先或跟随这些角色的人都将被剥夺。