Я бы сделал так
text = soup.find('h4').next_sibling
text.replace('(USA)','')
или
text = soup.find('h4',{'class','inline'}).next_sibling
text.replace('(USA)','')
Чем вы можете использовать регулярное выражение, чтобы исключить скобки (USA)
как слова из текста.
с помощью регулярных выражений для удаления определенного слова из строки
text = soup.find('h4',{'class','inline'}).next_sibling
import re
text = re.sub(r'\s\(.+\)','',text)
Это удалит любое другое слово в скобках из этой строки.
У меня есть эта функция в моей кодовой базе, это должно работать на Вас.
public static Document loadXMLFromString(String xml) throws Exception
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
InputSource is = new InputSource(new StringReader(xml));
return builder.parse(is);
}
также см. этот подобный вопрос
Один путь состоит в том, чтобы использовать версию синтаксического анализа, который берет InputSource, а не файл
, SAX InputSource может быть создан из объекта Читателя. Один объект Читателя является StringReader
Так что-то как
parse(new InputSource(new StringReader(myString))) may work.
шоу javadocs, что метод синтаксического анализа перегружается.
Создают StringStream или InputSource с помощью строки XML, и Вы должны быть установлены.
Преобразуйте строку в InputStream и передайте ее РЕДАКТИРОВАНИЮ DocumentBuilder
final InputStream stream = new ByteArrayInputStream(string.getBytes(StandardCharsets.UTF_8));
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
builder.parse(stream);
В ответ на изгиб комментарий относительно кодирования, см. ответ shsteimer на этот вопрос.