如何去除Python汇率解析器中货币名称开头的空格?
问题:去除美元汇率解析器中货币名称前的多余空格
你遇到的问题是因为从HTML标签提取的文本包含了原始HTML里的缩进、换行等空白字符,导致名称前出现多余空格。可以通过以下两种简单方式解决:
方法1:使用字符串的strip()方法
直接对提取到的name文本调用strip(),去除首尾所有空白字符(包括空格、换行符、制表符等):
def usd(): import requests import bs4 r = requests.get('https://fx-rate.net/USD/') if r.status_code == 200: soup = bs4(r.text, "html.parser") tbody = soup.find_all("tbody")[1] for info in tbody: try: name = info.find("td").text.strip() # 添加strip()去除首尾空白 rate = info.find("a", class_ = "1rate").text.strip() # 也可给rate添加,避免潜在空白 except: pass print(f"{name} | {rate}") else: print(r.status_code) usd()
方法2:使用BeautifulSoup的get_text(strip=True)方法
BeautifulSoup提供了更直接的方式,在获取文本时就自动去除首尾空白:
def usd(): import requests import bs4 r = requests.get('https://fx-rate.net/USD/') if r.status_code == 200: soup = bs4(r.text, "html.parser") tbody = soup.find_all("tbody")[1] for info in tbody: try: name = info.find("td").get_text(strip=True) # 使用get_text并设置strip=True rate = info.find("a", class_ = "1rate").get_text(strip=True) except: pass print(f"{name} | {rate}") else: print(r.status_code) usd()
两种方法都能得到干净的输出,示例如下:
Danish Krone | 7.65 Egyptian Pound | 19.7 Ethereum | 0.0008 Euro | 1.03 Hong Kong Dollar | 7.85
内容的提问来源于stack exchange,提问作者user18867040
相关产品推荐
相关产品推荐

