【问题标题】:How to parse or locate a string in different line?如何解析或定位不同行中的字符串?
【发布时间】:2020-10-28 09:12:04
【问题描述】:

我是网络抓取的新手,我尝试通过使用字符串作为定位内容的工具来解析文件中的特定内容。该字符串包含多个单词,并且在文件中,该字符串已被分成两行。

我写的代码再也找不到这个字符串了。我已经尝试过rstrip()replace() 函数,但它们都不起作用。示例如下。图片

是一个文本文件,我在其中突出显示了我尝试定位的字符串"PRINCIPAL STOCKHOLDER"。如图所示,字符串被分成两行,由于找不到字符串,代码返回none。

以下代码不起作用:

text_locate = 'PRINCIPAL STOCKHOLDER'
text = (str(text_locate).replace('\r', '').replace('\n', ''))

【问题讨论】:

  • 试试' '.join(test.split()) - 这将删除所有多个空格和换行符并将它们缩小到1个空格。
  • 抱歉代码是由 text = ' '.join(test.split()) 写的?

标签: python string parsing scrape


【解决方案1】:

试试这个:

text = text_locate.strip().replace("\n","")

【讨论】:

  • 问题不是要去掉换行符和空格,而是要找到字符串。我需要找到字符串然后解析以下内容。找到字符串后,我可以使用 beautifulsoup soup.find_all('located_string') 来解析其余内容。有什么办法可以让我的定位字符串与图片显示的完全相同?
【解决方案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/

另外,也许您应该只查找 PRINCIPAL 或 STOCKHOLDER 而不是同时查找它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多