я получаю пустой список после добавления к нему заданий

#python #web-scraping #beautifulsoup

#python #веб-очистка #beautifulsoup

Вопрос:

я пытаюсь научиться создавать веб-страницы indeed.com для Джобса я нашел видео на YouTube и набрал его точно так же, как он, но когда я пытаюсь распечатать список, он не работает, он просто выдает мне пустой список

 from bs4 import BeautifulSoup
import requests

def extract(page):
    headers={'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, likeGecko) Chrome/86.0.4240.183 Safari/537.36'}
    url=f'https://www.indeed.com/jobs?q=Python Developeramp;l=Augusta, GAamp;start={page}amp;vjk=5ab1434abb63a27b'
    r=requests.get(url,headers)
    soup=BeautifulSoup(r.content,'html.parser')
    return soup

def transform(soup):
    divs=soup.find_all('div',class_='jobsearch-SerpJobCard')
    for item in divs:
        title=item.find('a').text.strip()
        # print(title)
        company=item.find('span',class_='company').text.strip()
        # print(company)
        try:
            salary=item.find('span',class_='salaryText').text.strip()
            # print(salary)
        except:
            salary=''

        job={
            'title': title,
            'company': company,
            'salary': salary
        }
        joblist.append(job)
    return


joblist=[]
c=extract(20)
transform(c)
print(joblist)
  

Комментарии:

1. @juanpa.arrivillaga как мои divs пусты, я не понимаю

Ответ №1:

В вашей transform() функции вы устанавливаете локальную переменную joblist , а не глобальную, которую вам нужно добавить global joblist в начале функции.

В противном случае исправьте свое return утверждение, если вместо этого вы хотите вернуть, используйте return joblist и используйте using joblist = transform(c)

Комментарии:

1. теперь он все еще выдает мне пустой список, что-то связанное с циклом divs for, но я не понимаю, как это исправить