【问题标题】:I want to scape the table "use of proceeds" off this text file. Is there a way for me to do it in python?我想从这个文本文件中删除表格“收益的使用”。有没有办法让我在 python 中做到这一点?
【发布时间】:2020-05-16 08:32:30
【问题描述】:

The table I am looking for我是python网络抓取的新手。我正在尝试从文本文件text_file 上刮掉表格。附上文本文件,我想将“收益使用”表刮成一个excel文件或至少一个文本文件。

我从一些代码开始,但不知道如何从那里开始。

url_text = requests.get(text_file)
data = url_text.text
soup = BeautifulSoup(data, 'html.parser')
tables = soup.find('td')
tables1 = tables.find_all('td')

但是tables1 的返回值是none。 有人可以帮我弄这个吗? 非常感谢

【问题讨论】:

    标签: python web beautifulsoup screen-scraping


    【解决方案1】:
    import pandas as pd
    
    
    def main(url):
        df = pd.read_html(
            url, attrs={'style': 'LINE-HEIGHT: 14pt; BORDER-COLLAPSE: collapse'})[0]
        print(df)
        df.to_csv("data.csv", index=False)
    
    
    main("https://www.sec.gov/Archives/edgar/data/745732/000120677414002818/0001206774-14-002818.txt")
    

    输出:view-online

    【讨论】:

    • 您好,感谢您的 cmets,但我运行的代码返回错误:'找不到 html5lib,请安装它'。安装 html5lib 后仍然显示错误
    • 另一个问题,我正在尝试“使用proceed”抓取表,但是在添加match = 'USE OF PROCEED'之后,它没有返回任何表。你能帮我修一下吗?
    • @FanqiGraceMeng 那么让我们一步一步来吧。你安装了pip install html5lib 吗?如果是,您是否使用virtual environment 来确保您在其中安装了模块?对于特定的表格,您能否编辑您的问题并显示所需的表格?
    • @ αԋɱҽԃ αмєяιcαη,我重新启动 PyCharm 后代码运行良好。我正在寻找的表格在 USE OF PROCEEDS 下的标题为“CAPITALIZATION”,有几个 cmets 和实际表格。我在问题中附上了我想要的表格。你能帮我处理一下桌子废料吗,在此先感谢。
    【解决方案2】:

    你在这一行犯了一个单行错误。

    >>> tables = soup.find('td')
    

    此行将仅在您请求的 html 页面中找到标记 td 的第一次出现。 因此,当您在下一行使用此结果时,它不会找到任何其他名为“td”的标记。 您只需将此行更改为下面给出的行。

    >>> tables = soup.findAll('td')
    

    这将为您完成工作!现在您拥有所有表格标签,如文本文件中所示。然后,您只需要遍历表,并从中取出文本。

    >>> for data in tables:
         print(data.text) # Anything you want to do.
    

    【讨论】:

    • 似乎表格标题与表格分离。如何先找到表格标题,然后找到最近的表格?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-04
    • 1970-01-01
    • 2023-02-09
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    相关资源
    最近更新 更多