for-loop没有拿起if-else语句

问题描述 投票:0回答:1

我很难在这个函数中打印出10行/输出。到目前为止,我只有两个输出。 for-loop不是逐行读取,或者if-else语句是错误的。

# copy and paste the url from indeed using your search term
URL = 'https://www.indeed.com/jobs?q=data+scientist+%2485%2C000&l=New+York'

#conducting a request of the stated URL above:
page = requests.get(URL)

#specifying a desired format of “page” using the html parser - this allows python to read the various components of the page, rather than treating it as one long string.

soup = BeautifulSoup(page.text, 'html.parser')
#printing soup in a more structured tree format that makes for easier reading
print(soup.prettify())


def extract_salary_from_result(soup): 
  salaries = []
  for td in soup.find_all(name='td', attrs={'class':'snip'}):
    for div in td.find_all(name='div', attrs={'class':'salarySnippet'}):
       salary = div.find_all(name='span', attrs={'class':'salary no-wrap'})
       #print('salary in 2nd for-loop', salary)
       #if len(salary) > 0:
       for c in salary:
          salaries.append(c.text.strip())
          print('salary in if statement',salaries)
       else:
          salaries.append('Nothing_found')
          print('salary in else statement',salaries)
  return(salaries)
salary = extract_salary_from_result(soup)
print('salary is: ', salary)

目前的产出是:

salary in if statement ['$115,000 a year']
salary in else statement ['$115,000 a year', 'Nothing_found']
salary is:  ['$115,000 a year', 'Nothing_found']

理想的输出应该是:

['$115,000 a year', 'Nothing_found','Nothing_found','Nothing_found','Nothing_found','Nothing_found','Nothing_found','Nothing_found','Nothing_found','Nothing_found'] 
python for-loop if-statement web-scraping
1个回答
0
投票

你那里没有if-else。你有一个for-else。你可能想要这个:

   for c in salary:
       if len(c) > 0:
           salaries.append(c.text.strip())
           print('salary in if statement',salaries)
       else:
           salaries.append('Nothing_found')
           print('salary in else statement',salaries)

elsefor-else并没有取代else中的if-else。它更像是一个“finally”语句(如果没有遇到break语句,它会在循环结束后执行)。

© www.soinside.com 2019 - 2024. All rights reserved.