Я получаю информацию с веб-сайта, анализирую ее с помощью запросов HTTP POST, а затем вручную создаю имена заголовков столбцов. Основная проблема заключается в том, что я не могу заполнить значения в столбцах
import requests
from bs4 import BeautifulSoup
import pandas as pd
import xlsxwriter
request_headers = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,'
'application/signed-exchange;v=b3',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'en,en-GB;q=0.9',
'Cache-Control': 'max-age=0',
'Connection': 'keep-alive',
'Content-Length': '39',
'Content-Type': 'application/x-www-form-urlencoded',
'Cookie': 'JSESSIONID=CB1FBCAD1E0A6B89CBBA959FF001B7FC; ETAXES=etaxes; JSESSIONID=0CB3B2A0B873D9308A0B5D2C8CB88EA4',
'Host': 'www.e-taxes.gov.az',
'Origin': 'https://www.e-taxes.gov.az',
'Referer': 'https://www.e-taxes.gov.az/ebyn/commersialChecker.jsp',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/75.0.3770.142 Safari/537.36',
}
voens = [1302932691,
1701579951,
]
form_data = {
'name': voens,
'tip': '2',
'submit': 'Yoxla',
}
url = 'https://www.e-taxes.gov.az/ebyn/commersialChecker.jsp'
response = requests.post(url, data=form_data, headers=request_headers)
s = BeautifulSoup(response.content, 'lxml')
sHeader = s.findAll('table', {'class': 'com'})[0].findAll('tr', recursive=False)[1]
headers = [sHeader.get_text().strip()]
print(headers)
for voen in voens:
form_data['name'] = voen
response = requests.post(url, data=form_data, headers=request_headers)
s = BeautifulSoup(response.content, 'lxml')
sContent = s.find('tr', {'class': 'style1'})
outcome = [sContent.get_text().strip()]
print(outcome)
print(type(outcome))
pandaHeaders = pd.DataFrame({'Kommersiya qurumunun adı': headers[0],
'VÖEN': headers[0],
'Vergi uçotu orqanının adı': headers[0],
'Təşkilati-hüquqi forması': headers[0],
'Hüquqi ünvanı': headers[0],
'Nizamnamə kapitalı': headers[0],
'Qanuni təmsilçi': headers[0],
'Dövlət qeydiyyatına alındığı tarix': headers[0],
'Reyestr məlumatlarına son dəyişiklik tarixi': headers[0],
})
writer = pd.ExcelWriter("informationTaxIDs.xlsx", engine="xlsxwriter")
pandaHeaders.to_excel(writer, sheet_name='Sheet1', startrow=1, header=False)
workbook = writer.book
worksheet = writer.sheets['Sheet1']
header_format = workbook.add_format({
'bold': True,
'text_wrap': False,
'valign': 'top',
'fg_color': '#D7E4BC',
'border': 1})
for col_num, value in enumerate(pandaHeaders.columns.values):
worksheet.write(0, col_num + 1, value, header_format)
writer.save()
. Я ожидаю, что файл excel содержит вывод переменной output
, но он возвращает сообщение об ошибке 'VÖEN': outcome[1], IndexError: list index out of range
, как это.
Я думаю, что проблема в том, что вывод переменной output
представляет собой список с одним индексом, но его значение равно \n
, так что это означает, что существует один индекс. Как я могу разделить список вывода на индексы? тогда по этим индексам заголовки файла excel получают каждую переменную