赋值前引用的局部变量 'bet'
local variable 'bet' referenced before assignment
似乎有些网站没有给出可变投注的输出。
提到的网站只是我正在尝试的网站之一
_
cleaner('http://www.indeed.com/cmp/Akvelon,-Inc./jobs/Software-Database-Engineer-9f35bfbe02577e2a?sjdu=QwrRXKrqZ3CNX5W-O9jEvRFd8FQI4DEv5V74lSpSnHYgnddE4ZyZFNs76EkGRtDwtEmC1g0ZgP9j4kJzAk16Kmc5zfQEpyLY32nEHt1W9y4')
def _cleaner(websr):
html = urllib2.urlopen(websr).read()
soup = BeautifulSoup(html)
for elm in soup.find("span", id="job_summary").find_all("p"):
betf = elm.get_text()
for i in soup.find("span", id="job_summary").find_all("ul"):
bet = i.get_text(" ")
return betf+" "+bet
for
循环中的列表 (soup.find("span", id="job_summary".find_all("p")
) 可能为空,导致 bet
或 betf
无法分配。您可以预先分配变量以避免此问题:
def _cleaner(website):
betf = ''
bet = ''
html = urllib2.urlopen(website).read()
soup = BeautifulSoup(html)
for elm in soup.find("span", id="job_summary").find_all("p"):
betf = elm.get_text()
for i in soup.find("span", id="job_summary").find_all("ul"):
bet = i.get_text()
return betf+" "+bet
由于对 bet
的赋值是在一个循环内的 try
块中,因此 soup.find("span", id="job_summary").find_all("ul")
必须是 non-empty 且 i.get_text()
必须至少成功一次为 bet
分配一个值。您应该确定在失败的情况下要做什么。您可以在 except
块中分配一个默认值,或者简单地在循环之前分配一些东西。上面的 betf
也是如此。
似乎有些网站没有给出可变投注的输出。 提到的网站只是我正在尝试的网站之一 _
cleaner('http://www.indeed.com/cmp/Akvelon,-Inc./jobs/Software-Database-Engineer-9f35bfbe02577e2a?sjdu=QwrRXKrqZ3CNX5W-O9jEvRFd8FQI4DEv5V74lSpSnHYgnddE4ZyZFNs76EkGRtDwtEmC1g0ZgP9j4kJzAk16Kmc5zfQEpyLY32nEHt1W9y4')
def _cleaner(websr):
html = urllib2.urlopen(websr).read()
soup = BeautifulSoup(html)
for elm in soup.find("span", id="job_summary").find_all("p"):
betf = elm.get_text()
for i in soup.find("span", id="job_summary").find_all("ul"):
bet = i.get_text(" ")
return betf+" "+bet
for
循环中的列表 (soup.find("span", id="job_summary".find_all("p")
) 可能为空,导致 bet
或 betf
无法分配。您可以预先分配变量以避免此问题:
def _cleaner(website): betf = '' bet = '' html = urllib2.urlopen(website).read() soup = BeautifulSoup(html) for elm in soup.find("span", id="job_summary").find_all("p"): betf = elm.get_text() for i in soup.find("span", id="job_summary").find_all("ul"): bet = i.get_text() return betf+" "+bet
由于对 bet
的赋值是在一个循环内的 try
块中,因此 soup.find("span", id="job_summary").find_all("ul")
必须是 non-empty 且 i.get_text()
必须至少成功一次为 bet
分配一个值。您应该确定在失败的情况下要做什么。您可以在 except
块中分配一个默认值,或者简单地在循环之前分配一些东西。上面的 betf
也是如此。