![](/img/trans.png)
[英]Python beautifulsoup trying to remove html tags 'span'
[英]BeautifulSoup trying to remove HTML data from list
如上所述,我试图从打印的 output 中删除 HTML 以获取文本和我的划分 | 和 -。 我得到了跨度信息以及我想删除的其他信息。 由于它是循环程序的一部分,因此我无法在页面的各个文本信息发生变化时搜索它们。 页面架构保持不变,这就是打印列表中的项目保持不变的原因。 想知道清洁 output 的最简单方法是什么。 这是代码部分:
infoLink = driver.find_element_by_xpath("//a[contains(@href, '?tmpl=component&detail=true&parcel=')]").click()
driver.switch_to.window(driver.window_handles[1])
aInfo = driver.current_url
data = requests.get(aInfo)
src = data.text
soup = BeautifulSoup(src, "html.parser")
parsed = soup.find_all("td")
for item in parsed:
Original = (parsed[21])
Owner = parsed[13]
Address = parsed[17]
print (*Original, "|",*Owner, "-",*Address)
示例 output 是:
<span class="detail-text">123 Main St</span> | <span class="detail-text">Banner,Bruce</span> - <span class="detail-text">1313 Mockingbird Lane<br>Santa Monica, CA 90405</br></span>
谢谢!
要获取标签之间的文本,只需使用get_text()
但您应该注意,标签之间总是有文本以避免错误:
for item in parsed:
Original = (parsed[21].get_text(strip=True))
Owner = parsed[13].get_text(strip=True)
Address = parsed[17].get_text(strip=True)
我最近写了一个算法来做这样的事情。 但是,如果您的目标文本中包含 < 或 >,它将不起作用。
def remove_html_tags(string):
data = string.replace(string[string.find("<"):string.find(">") + 1], '').strip()
if ">" in data or "<" in data:
return remove_html_tags(data)
else:
return str(data)
它递归地删除<
和>
之间的文本,包括在内。
让我知道这个是否奏效!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.