[英]How to fix NameError: name 'author' is not defined when running python script
[英]How to fix “NameError: name 'name' is not defined” in python?
編碼新手,試圖在python中編寫一個蜘蛛。
我收到一個錯誤,即未定義變量。
我在代碼中定義了它。 它被宣布為全球性的。
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()
第一個全球變量是邪惡的 。 所以你應該盡量不要使用globals
關鍵字。
在python中,您可以通過為其賦值來定義變量。 例如
variable_x = 10
你不能說這個變量存在,但是不像其他編程語言那樣為它賦值。
您的問題是,您只為for循環中的變量賦值,但如果您從未輸入它,則不會分配值。
我認為你必須在for循環中添加打印。
for product in product_list:
name = product.find("div",class_="_1NoI8__2gr36I")
name=name.text
price = product.find("span",class_="_341bF0")
price=price.text
soldnum=product.find("div",class_="_18SLBt")
soldnum=price.text
print(name, price, soldnum)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.