r4khic
@r4khic
Начинающий кодер на python

Как исправить ошибку NameError: name 'html' is not defined?

Всем привет ! У меня вот такой код:
import requests
from bs4 import BeautifulSoup
import pymysql

def get_html(url):
    r = requests.get(url)
    return r.text

# < Сбор ссылок.
def get_links(html):
    soup = BeautifulSoup(html, 'lxml')
    links=soup.findAll(link_container_array[0],{link_container_array[1]:link_container_array[2]})
    #print(resource_name)
    #print(len(links))

    for link_container in links:
        a_tag = link_container .find("a")
        # Если нашел
        if a_tag:
            link = resource_url+ a_tag.get("href")
            #print(link)

# < Сбор контента.
def get_content(html,link):
    soup = BeautifulSoup(html,'lxml')
    headline=soup.find(title_array[0],{title_array[1]:title_array[2]})
    print(headline)

#< Вызывание всех функций.
def get_all_func (resource_allnews_link):
    url = resource_allnews_link
    links = get_links(get_html(url))
    content = get_content(html ,links)

# < Подключение к базе данных.
connection = pymysql.connect(host='localhost',
                             user='root',
                             password='',
                             db='news_portal',
                             charset='utf8',
                             autocommit=True)
cursor = connection.cursor()

# < Запрос правил выдергивания контента.
cursor.execute('SELECT `resource_id`, `resource_name`, `resource_url`, `resource_allnews_link`, `link_rule`, `mainblock`, `mainblock1`, `page_link`, `title`, `datetime`, `datetime1`, `text`, `text1` FROM `resource` WHERE 1')
resources=cursor.fetchall()
# < Цикл для перебора из кортежа.
for resource in resources:
    resource_name=resource[1]
    resource_url=resource[2]
    resource_allnews_link=resource[3]
    content_rule=resource[4]
    title=resource[8]
    resource_name_array=resource_name.split(',')
    link_container_array=content_rule.split(',')
    title_array=title.split(',')
    get_all_func(resource_allnews_link,)

connection.close()

Я хотел сделать чтобы собранные ссылки в функции get_links передавались в get_content и после с полученных данных у меня был вывод моей переменной headline
Но при запуске скрипта выходит эта ошибка
Traceback (most recent call last):
File "C:/Users/Администратор/PycharmProjects/Task/sql_pars.py", line 57, in
get_all_func(resource_allnews_link,)
File "C:/Users/Администратор/PycharmProjects/Task/sql_pars.py", line 33, in get_all_func
content = get_content(html ,links)
NameError: name 'html' is not defined

Process finished with exit code 1

P.S Я понимаю что у меня HTML не определена. Я хочу узнать как мне исправить это?
  • Вопрос задан
  • 579 просмотров
Решения вопроса 1
MalkovVladimir73
@MalkovVladimir73
Fullstack (node + vue.js)
Может вы просто объявите эту переменную?

def get_all_func (resource_allnews_link):
    url = resource_allnews_link
    links = get_links(get_html(url))
    content = get_content(html ,links)


Присмотритесь, в данной фанке нет объявлений переменной html.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
OnederX Москва
от 100 000 до 120 000 ₽
iCode Москва
от 90 000 до 200 000 ₽
SwapZilla.co Сочи
от 200 000 ₽
12 июл. 2020, в 23:05
25000 руб./за проект
12 июл. 2020, в 22:52
750 руб./за проект