首页 > 解决方案 > 无法使用python从字符串中删除十六进制字符

问题描述

我已经尝试过使用 encode('ascii', errors='ignore') 之类的解决方案,但是可以使用 python 从字符串中删除这些十六进制字符。这是我的代码..

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from bs4 import BeautifulSoup
import pandas as pd
import json
import datetime
import time

options = Options()
options.add_argument("--disable-gpu")
options.add_experimental_option('excludeSwitches', ['enable-logging'])
driver = webdriver.Chrome("C:/Webdriver/chromedriver.exe",options=options)
driver.get('https://www.trustradius.com/products/oracle-analytics-cloud/reviews?f=0&o=recent')
time.sleep(3)
soup = BeautifulSoup(driver.page_source, 'lxml')

scripts = soup.find_all('script')[-8].string
script = scripts.split('=',1)[1]
for item in script.split("\n"):
    if "searchData" in item:
        item = item.replace('searchData: ','')
        line = item[0:500]
        line = line.encode('ascii', errors='ignore').decode("utf-8")
        print(line)

请让我知道是否有人对此有解决方案,谢谢。

标签: python-3.xselenium-webdriverbeautifulsoup

解决方案


简单的解决方法是使用下面的代码,如果唯一不正确的字符是 \x20 然后用空白替换它。

item = item.replace('\\x20','')

我在 Stackoverflow 中找到了一些对类似问题有帮助的答案,请参考。 如何从 Python 中的字符串中删除 \xa0?

希望这个解决方案能解决您的问题!


推荐阅读