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

Python 如何从bs4结果中删除字符串?,python,html,python-2.7,web-scraping,beautifulsoup,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['Use

编辑:好的,这是我正在使用的代码,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">


2017年1月13日
,
下午2:09

默认情况下
.strip()
方法仅去除空白,而在您的情况下,很可能会混合使用换行符和空白,要解决此问题,请尝试更改:

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

'\n'
-由两个字符组成,一个空格和代表换行符的
\n
。这些字符中的任何前导字符或后导字符都将被删除。

最好显示一个
状态
位置
以及预期结果。如果要删除固定大小的文本,请使用切片
text[start:end]
。或者使用
拆分(“”,1)
拆分第一个空格上的文本
rsplit(“”,1)
在最后一个空格上拆分(
r
=右)。顺便说一句:如果你想删除同一个单词,你也可以使用
replace()
。也许首先检查一下你用
find_all()[1://code>得到了什么,以及你用
map()
得到了什么-也许你不应该使用
[1://code>,或者你期望太高了-你只有一个日期。最好创建最小的工作示例,以便我们可以运行它。现在我们帮不上忙了——我们无法读懂你的心思。