Парсер возвращает только один ответ, вместо нескольких
Вот мой парсер, он ищет имена вакансий и возвращает только название первой вакансии, что может быть не так? Сразу скажу, что нахождение всей таблицы и переход на сайт использую селениумом, так как в дальнейшем буду пользоваться им
from bs4 import BeautifulSoup
import requests
from selenium.webdriver import FirefoxProfile
from selenium import webdriver
from fake_useragent import UserAgent
import time
def perehod():
user=UserAgent()
profile=webdriver.FirefoxProfile()
profile.set_preference('general.useragent.override',user.random)
driver=webdriver.Firefox(profile)
driver.get('https://rabota.ykt.ru/')
table=driver.find_element_by_css_selector('ul.r-vacancy_list').get_attribute('innerHTML')
return table
#Это смена юзер агента и нахождение таблицы
def rabota(perehod):
soup=BeautifulSoup(perehod,'lxml')
vacansii=soup.findAll(class_='r-vacancy_list_item ng-scope')
all_knopki=[]
for vacansia in vacansii:
knopka=vacansia.find(class_='r-vacancy_title').text
all_knopki.append(knopka)
return all_knopki
#Это нахождение названий вакансий
def main():
a=rabota(perehod())
for i in a:
print (i)
if __name__=='__main__':
main()
Вот ответ
Юрист
Мне надо, чтобы были названия всех вакансий, которые находятся на первой страницы
Ответы (1 шт):
Автор решения: nomnoms12
→ Ссылка
Вынесите return за пределы цикла for. На данный момент Ваша функция завершается после нахождения первой вакансии.
Пример:
def rabota(perehod):
soup=BeautifulSoup(perehod,'lxml')
vacansii=soup.findAll(class_='r-vacancy_list_item ng-scope')
all_knopki=[]
for vacansia in vacansii:
knopka=vacansia.find(class_='r-vacancy_title').text
all_knopki.append(knopka)
return all_knopki