如何修复python中的“NameError:name'name'is not defined”?

2024-10-16 17:23:10 发布

您现在位置:Python中文网/ 问答频道 /正文

不熟悉编码,尝试用python编写spider。在

我得到一个错误,一个变量没有被定义。在

我已经在代码中定义了它。它被宣布为全球性的。在

import requests

from bs4 import BeautifulSoup


def get_products():
    headers = {
        'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36',
        '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':'zh-CN,zh;q=0.9'
    }

    for i in range(0,10):
        link = 'https://shopee.sg/miniso_singapore?page='+ str(i)
        r = requests.get(link, headers=headers)

        soup = BeautifulSoup(r.text, "lxml")
    global name,price,soldnum
    product_list=soup.find_all("div",class_="shop-search-result-view__item col-xs-2-4")  
    for each in product_list:       
        name = each.find("div",class_="_1NoI8__2gr36I")
        name=name.text 

        price = each.find("span",class_="_341bF0")
        price=price.text

        soldnum=each.find("div",class_="_18SLBt")
        soldnum=price.text

    print(name,price,soldnum)


get_products()

Tags: textnameimportdivget定义applicationfind
1条回答
网友
1楼 · 发布于 2024-10-16 17:23:10

第一个global variables are evil。所以您应该尽量不要使用globals关键字。在

在python中,通过给变量赋值来定义变量。e、 g

variable_x = 10

你不能说这个变量存在,但是不要像其他编程语言那样给它赋值。在

你的问题是,你只给for循环中的变量赋值,但是如果你从不输入,就没有赋值。在

我想你必须在for循环中添加打印。在

^{pr2}$

相关问题 更多 >