Я создал скрипт на python, чтобы анализировать названия компаний и их даты с веб-страницы и записывать их в файл excel с помощью openpyxl. Мое намерение состоит в том, чтобы поместить имена и даты в отдельные столбцы, такие как name1 date1 name2 date2
и т. Д.
Моя текущая попытка может извлечь содержимое из словаря и вывести результат, как показано ниже:
{'NATIONAL OPERA STUDIO': '18 Nov 2010', 'NATIONAL THEATRE BALLET SCHOOL': '12 Aug 2005', 'NATIONAL THEATRE DRAMA SCHOOL': '12 Aug 2005', 'NATIONAL THEATRE': '30 Mar 2000'}
Как разместить имена и даты в файле Excel следующим образом?
column1 column2 column3 column4
NATIONAL OPERA STUDIO 18 Nov 2010 NATIONAL THEATRE BALLET SCHOOL 12 Aug 2005
Это моя попытка:
import re
import requests
from bs4 import BeautifulSoup
from openpyxl import load_workbook
wb = load_workbook('container.xlsx')
ws = wb['Sheet1']
url = "https://abr.business.gov.au/ABN/View?id=78007306283"
response = requests.get(url)
soup = BeautifulSoup(response.text,'lxml')
try:
names_n_dates = {item.find("a").get_text(strip=True):' '.join(item.find("a").find_parent().find_next_sibling().text.split()) for item in soup.find("th",text=re.compile("Business name",re.I)).find_parent().find_next_siblings("tr")}
except AttributeError: names_n_dates = ""
items = {k:v for k,v in names_n_dates.items()}
print(items)
ws.append([items.split()])
wb.save("container.xlsx")
Я знаю, что не могу применить функцию разделения к словарю, но я не знаю альтернативных опций eiter для достижения того же. Я использовал ws.append ([]) , чтобы включить поля в файл Excel, и я хочу сохранить эту команду такой, какая она есть, потому что есть другие поля, которые будут включены в нее позже.