#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, но я не понимаю, как это исправить