Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 19, 2017 17:59:04

Antonpython
Зарегистрирован: 2017-02-14
Сообщения: 105
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсинг значений со страницы

Добрый день, возможно, кто-то подскажет, как запарсить данные с сайта

Чтобы было сначала название вакансии, потом за ней шла (в одну строку) сумма зарплаты?
Первая часть отрабатывает, вторая нет….

import requests
import urllib
from bs4 import BeautifulSoup
import csv
from datetime import datetime
from multiprocessing import Pool

def get_html(url):
response = urllib.request.urlopen(url)
return response.read()

def parse(html):
soup = BeautifulSoup(html, "lxml")
table = soup.find('table', class_='l l_auto')

vacancies = []

for row in table.find_all('div', class_='search-result-description__item search-result-description__item_primary'):
cols = row.find_all('div', class_='search-result-item__head')

vacancies.append({
'title': cols[0].a.text,
})

for vacancy in vacancies:
print(vacancy)

salaries = []

for row in table.find_all('div', class_='search-result-description__item search-result-description__item_primary'):
cols2 = row.find_all('div', class_='b-vacancy-list-salary')

salaries.append({
'categories': cols2[0].div.find_all('meta', class_='baseSalary')
})

for salary in salaries:
print(salary)

def main():
parse(get_html('https://jobs.tut.by/search/vacancy?text=%D0%9B%D0%BE%D0%B3%D0%B8%D1%81%D1%82&only_with_salary=false&area=16&enable_snippets=true&clusters=true&salary='))

if __name__ == '__main__':
main()

Офлайн

#2 Авг. 20, 2017 00:15:01

kazaff
От:
Зарегистрирован: 2011-08-12
Сообщения: 26
Репутация: +  2  -
Профиль   Отправить e-mail  

Парсинг значений со страницы

Офлайн

#3 Авг. 20, 2017 10:40:38

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Парсинг значений со страницы

Antonpython
как запарсить данные с сайта
Надо сначала выбрать узлы с записями. Подать страницу и получить последовательность узлов.
Потом надо сделать обработчик узла. Подать узел и получить поле название и поле зарплата.
Потом надо сделать получатель поля названия из узла. Подать узел и получить поле название.
Потом надо сделать получатель поля зарплаты из узла. Подать узел и получить поле зарплата.

Вот потом это всё вместе соединяешь и получится понятная структура. А сейчас у тебя мешанина всего со всем.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version