Извлечение нескольких таблиц в Excel из BeautifulSoup - PullRequest
0 голосов
/ 11 июля 2019

Я извлек несколько таблиц из BeautifulSoup с разных URL-адресов: и я получаю их для печати в Python. Тем не менее, когда я пытаюсь извлечь его, чтобы преуспеть, это не работает. Таблицы хранятся в списке, но я не могу найти способ сохранить их в Excel.

Мне нужна каждая таблица на отдельном листе, но я не могу напечатать список прямо в Excel и таблицы.

У меня есть список многих URL, но вот некоторые из них, чтобы показать, как они выглядят.

https://www.sec.gov/Archives/edgar/data/3197/000119312510083400/ddef14a.htm https://www.sec.gov/Archives/edgar/data/3197/000119312511098071/ddef14a.htm https://www.sec.gov/Archives/edgar/data/3197/000119312512157233/d293744ddef14a.htm https://www.sec.gov/Archives/edgar/data/3197/000119312513152959/d469796ddef14a.htm

from bs4 import BeautifulSoup
import requests 
import pandas as pd
import xlwt

xl = pd.ExcelFile(r'/path/to/file/with/links.xlsx')
link = xl.parse('Sheet1') 

book = xlwt.Workbook()

list1 = []

for i in range(10,16):
    try:
        url = link['Link'][i]
        html = requests.get(url).content
        df_list = pd.read_html(html)

        #I have matched up two keywords
        soup = BeautifulSoup(html,'lxml')
        table1 = soup.select_one('table:contains("Fees")')
        table2 = soup.select_one('table:contains("Earned")')
        if table1 == table2:
            df = pd.read_html(str(table1))
            list1.append(df)

#HERE BELOW IS WHERE THE PROBLEM IS

            writer = pd.ExcelWriter('Tables_Fees_Earned.xlsx')
            for counter in range(len(list1)):
                sheet_name = 'Sheet%s' % counter
                pd.Series(name = '').to_excel(writer, sheet_name=sheet_name)
                for c in range(len(list1)):
                    list1[c].to_excel(writer,'Sheet%s' % counter)

            writer.save()


        else:
            print(i)

Ошибка: AttributeError: у объекта 'list' нет атрибута 'to_excel'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...