IndexError: tuple index out of range python [закрыт]

355
25 мая 2021, 09:10
Закрыт. Этот вопрос не по теме. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском.

Закрыт 1 год назад.

Улучшить вопрос

Вот код

import requests
import dateparser
import pymysql.cursors
from bs4 import BeautifulSoup
def get_html(url):
    r = requests.get(url)
    return r.text
def get_data(html):
    soup = BeautifulSoup(html, 'lxml')
    mainblock=soup.find('div',{'class':'content-under cclear'})
    item_link=soup.find('meta',{'property':'og:url'})
    item_title=mainblock.find('h1',{'class':'headline'}).text
    item_datetime=mainblock.find('span').text
    item_datetime=dateparser.parse(item_datetime,date_formats=['%d %B %Y %H'])
    item_text_content_intro=mainblock.find('div',{'class':'content-intro'}).text
    item_text_content=mainblock.find('div',{'class':'content-text js-mediator-article'}).text
    return (item_link['content'],item_title,item_datetime,str.strip(item_text_content_intro,item_text_content))

def main():
    url = 'https://bnews.kz/news/v_otnoshenii_rukovodstva_-narkhoza-_vozbuzhdeno_administrativnoe_delo/'
    (get_data(get_html(url)))
if __name__ == '__main__':
    main()
#SQL
#Подключение к базе данных.
connection = pymysql.connect(host='localhost',
                             user='root',
                             password='',
                             db='news_portal',
                             charset='utf8',
                             autocommit=True)
url = 'https://bnews.kz/news/v_otnoshenii_rukovodstva_-narkhoza-_vozbuzhdeno_administrativnoe_delo/'
array = get_data(get_html(url))
sql = "insert into todaykz (`item_link`,`item_title`,`item_datetime`,`text_content_intro`,`text_content`) values (%s,%s,%s,%s,%s)"
cursor=connection.cursor()
item_link=array[0]
item_title=array[1]
item_datetime=str(array[2])
content_intro =array[3]
text_content=array[4]
cursor.execute(sql,((str(item_link),str(item_title),str(item_datetime),str(content_intro),str(text_content))))
print ("Запись в базу данных успешно выполнена.")

При вводе в базу данных следующая ошибка:

Traceback (most recent call last): File "C:/Users/Администратор/PycharmProjects/Task/bnewskz/bnewskz_parser.py", line 48, in <module> text_content=array[4] IndexError: tuple index out of range

Как устранить эту ошибку ?

Answer 1

Я понял.В чем ошибка.Она оказалось в моей не внимательности.Я пытался за инстертить данные в нету таблицу.

Вот правильный код:

sql = "insert into bnewskz (`item_link`,`item_title`,`item_datetime`,`content_intro`,`text_content`) values (%s,%s,%s,%s,%s)"
cursor=connection.cursor()
READ ALSO
Можно ли оптимизировать данный запрос или смотреть в сторону денормализации?

Можно ли оптимизировать данный запрос или смотреть в сторону денормализации?

Данный SQL запрос имеет различные модификации в коде, но суть одна - он работает на вывод объявлений, с информацией о категории и региональности

114
Ошибка при открытии phpmyadmin

Ошибка при открытии phpmyadmin

я установил в phpini следующие переменные (как было отвечено на странице Изменение настроек 1с bitrix, правда я так и не нашел место где задаются...

107
Вывести на PHP текст из json

Вывести на PHP текст из json

Есть вот такой json из API Википедии: https://ruwikipedia

139