【问题标题】:Extracting data from txt using URL in Python在 Python 中使用 URL 从 txt 中提取数据
【发布时间】:2020-10-31 06:17:29
【问题描述】:

我有一个包含 txt data 的 URL 我想从这个 URL 中提取特定的数据部分:

这里的数据:

我已经添加了txt文件的截图。在屏幕截图中,您可以看到“目录”。从这些目录中,我想提取特定项目编号的文本数据,例如,我想从第 2 部分项目 5 中提取数据,该数据在第 12 页上有数据。 任何人都可以帮助我使用 python 提取这些特定数据

【问题讨论】:

  • 从 Shivendra95 删除的评论中转贴:这是link to the data。从这个链接我试图提取数据的特定部分。在提供的屏幕截图中,您可以看到目录中有几个项目。从这些项目中,我只想提取特定项目的数据,例如项目 7。第 14 页上的管理层讨论和分析。我无法从该特定页面提取数据,因为这只是一个 txt 文档,我无法正确解析它以获得所需的结果

标签: python text-extraction


【解决方案1】:

有几种方法可以解决这个问题。第一个,可能也是最简单的,是string.find() 方法。当然,这假设您知道要查找的内容,您只想使用程序而不是手动获取它。

但是,在查看文档的格式后,您可能会将其传递给 BeautifulSoup 之类的东西,尽管我真的不建议将这种类型的文档输入 BS4,但您可能会得到大量错误。

第三个选项可能是最简单的方法(据我所知),它是构造一个正则表达式来搜索文档以查找与您想要的匹配的字符串。

在您给定的第 2 部分第 5 项示例中,您可以编写一个如下所示的简单程序:

import re
import requests

r = requests.get("https://www.sec.gov/Archives/edgar/data/3662/0000950170-98-000413.txt")

str_to_check = r.text

what_i_want = re.findall(r"(?i)(Part 2,? Item 5)", str_to_check)

print(what_i_want)

regex101 之类的网站对于学习如何构建您需要的正则表达式非常有帮助。

【讨论】:

  • 我一定会调查的。谢谢!!。现在我可以尝试一些东西。我被卡住了,不知道从哪里开始。
  • 没问题!我很高兴它有帮助:)
【解决方案2】:

您可以将文本拆分成页面,并打印您想要的页面内容:

import requests

r = requests.get("https://www.sec.gov/Archives/edgar/data/3662/0000950170-98-000413.txt")

r_text = r.text

text_pages = r_text.split("<PAGE>")

# get content of page 12
page = 12
text_page_12 = text_pages[page+1]
print(text_page_12)

【讨论】:

  • 有没有办法找到特定ITEM编号的页码。我有几个文档,例如我提供的链接,并且不同项目的页码不同。如果我能找到一种方法来查找特定项目编号的页码,这对我来说可能非常有用
【解决方案3】:

使用 Requests 和 BeautifulSoup 获取表格数据,然后您可以执行其他操作,例如将其保存到 txt 文件或其他任何内容。

# https://stackoverflow.com/questions/64618978/extracting-data-from-txt-using-url-in-python
import requests
from bs4 import BeautifulSoup


def get_data(url):
    r =  requests.get(url)
    if r.status_code == 200:
        return r.content


url = "https://www.sec.gov/Archives/edgar/data/3662/0000950170-98-000413.txt"
data = get_data(url)

soup =  BeautifulSoup(data, "lxml")

table = soup.find("table")
print(table)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-02
    • 2022-01-13
    相关资源
    最近更新 更多