首页 > 解决方案 > 未填充参数

问题描述

我编写了这段代码来格式化 URL 链接列表。

def main():
    format_link()
    create_html_link()

def format_link(dir_link_dirty):
    dir_link = dir_link_dirty.replace('"', "").replace(",", "").replace("\n", "")
    dir_link_code = urllib.request.urlopen(dir_link)
    bs_dir_link_code = BeautifulSoup(dir_link_code, "html5lib")
    h2_a_tag = bs_dir_link_code.h2.a
    html_link = str(dir_link) + "/" + str(h2_a_tag["href"])

    return html_link

def create_html_link():
    dir_lst = load_dir_file()
    for dir_link_dirty in dir_lst:
        html_link = str(format_link(dir_link_dirty))
        return html_link

如果我运行代码,我将收到以下消息:

format_link(str(dir_link_dirty))
NameError: name 'dir_link_dirty' is not defined
进程以退出代码 1 结束

我必须改变什么才能成功运行它?

标签: pythonpython-3.xnameerror

解决方案


调用format_link时,main没有参数dir_link_dirty.

破碎的:

def main():
    format_link()
    create_html_link()

固定的:

def main():
    format_link("https://example.com")
    create_html_link()

完整的例子:

def main():
    create_html_link()

def create_html_link():
    dir_lst = load_dir_file()
    for dir_link_dirty in dir_lst:
        html_link = str(format_link(dir_link_dirty))
        print(html_link)
        return html_link


def format_link(dir_link_dirty):
    dir_link = dir_link_dirty.replace('"', "").replace(",", "").replace("\n", "")
    dir_link_code = urllib.request.urlopen(dir_link)
    bs_dir_link_code = BeautifulSoup(dir_link_code, "html5lib")
    h2_a_tag = bs_dir_link_code.h2.a
    html_link = str(dir_link) + "/" + str(h2_a_tag["href"])
    print(html_link)
    return html_link

def load_dir_file():
    return ["https://www.gesetze-im-internet.de/ao_1977/BJNR006130976.html",
            "https://www.gesetze-im-internet.de/ao_1977/BJNR006130976.html"]

推荐阅读