#python #string #parsing #scrape
#python #строка #синтаксический анализ #очистить
Вопрос:
Я новичок в веб-очистке, и я пытаюсь проанализировать определенное содержимое в файле, используя строку в качестве инструмента для поиска содержимого. Строка содержит несколько слов, и в файле строка была разделена на две разные строки.
Код, который я пишу, больше не может найти строку. Я уже пробовал rstrip()
replace()
функции and, но ни один из них не работает. Пример следующий. Изображение
это текстовый файл, в котором я выделил строку "PRINCIPAL STOCKHOLDER"
, которую пытаюсь найти. Как показано на рисунке, строка была разделена на две строки, и код возвращает значение none, поскольку он не может найти строку.
Следующий код не работает:
text_locate = 'PRINCIPAL STOCKHOLDER'
text = (str(text_locate).replace('r', '').replace('n', ''))
Комментарии:
1. попробуйте
' '.join(test.split())
— это удалит все множественные пробелы и разрывы строк и уменьшит их до 1 пробела.2. Извините, код написан с помощью text = ‘ ‘.join(test.split())?
Ответ №1:
Попробуйте это:
text = text_locate.strip().replace("n","")
Комментарии:
1. Проблема заключалась не в том, чтобы избавиться от разрыва строки и пробелов, а в том, чтобы найти строку. Мне нужно найти строку, а затем проанализировать следующее содержимое. После того, как я найду строку, я могу использовать beautifulsoup soup.find_all(‘located_string’) для анализа остального содержимого. Есть ли какой-либо способ, которым я мог бы получить строку locate точно такой же, как показано на рисунке?
Ответ №2:
Вы пытались использовать xpath, он довольно прост в использовании :
https://www.accordbox.com/blog/scrapy-tutorial-7-how-use-xpath-scrapy/
Если вы не хотите, вы все равно можете это сделать :
https://thispointer.com/python-search-strings-in-a-file-and-get-line-numbers-of-lines-containing-the-string/
Также, возможно, вам следует искать только ПРИНЦИПАЛА или АКЦИОНЕРА, а не искать их обоих.