Форум сайта python.su
0
#!/usr/bin/python #coding=utf-8 import gspread, urllib, re from bs4 import BeautifulSoup a_pattern = '[0-9]\\s[0-9]*[0-9]\\b вакансий' # для поиска значения количества вакансий, list2 = [] list = ['IT', 'Продажа', 'Образование', 'Начало карьеры', 'Туризм', 'Стажировка', 'Маркетинг'] urllist = ['https://rabota.yandex.ru/search?job_industry=275', 'https://rabota.yandex.ru/search?job_industry=386', 'https://rabota.yandex.ru/search?job_industry=106', 'https://rabota.yandex.ru/search?experience=NO_EXPERIENCE', 'https://rabota.yandex.ru/search?job_industry=298', 'https://rabota.yandex.ru/search?text=%D1%81%D1%82%D0%B0%D0%B6%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0', 'https://rabota.yandex.ru/search?job_industry=420'] #yandex for items in list: for url in urllist: f = urllib.urlopen(url) soup = BeautifulSoup(f) i = soup.find_all('div', 'search-results__heading-content search-results__heading-content_type_vacancies') result = re.search(a_pattern, str(i)) list2.append(result.group(0)) # список с количеством вакансии print list2 #hh s_pattern = ["href='?enable_snippets=true&clusters=true&area=2&specialization=14&from=cluster_professionalArea'", "href='?enable_snippets=true&clusters=true&area=2&specialization=17&from=cluster_professionalArea'", "href='?enable_snippets=true&clusters=true&area=2&specialization=14&from=cluster_professionalArea'", "href='?enable_snippets=true&clusters=true&area=2&specialization=15&from=cluster_professionalArea'", "href='?enable_snippets=true&clusters=true&area=2&specialization=22&from=cluster_professionalArea'", "href='?enable_snippets=true&clusters=true&area=2&employment=probation&from=cluster_employment'"] j = 0 for items in list: j = j + 1 url = 'http://hh.ru/search/vacancy?clusters=true&enable_snippets=true&area=2' f = urllib.urlopen(url) soup = BeautifulSoup(f) i = soup.find('a', 'href')
<div class="search-results__heading-content search-results__heading-content_type_vacancies">5 217 вакансий <span class="where">в Санкт-Петербурге и Ленинградской области</span> <div class="search-results__heading-filter">в отрасли: IT, интернет, связь, телеком</div></div>
<a class="clusters-value" href="?enable_snippets=true&clusters=true&area=2&specialization=17&from=cluster_professionalArea"><span class="clusters-value__name" data-qa="serp__cluster-item-title">Продажи</span> <span class="clusters-value__count" data-qa="serp__cluster-item-number">9082</span></a>
Отредактировано admon (Авг. 28, 2015 00:24:25)
Офлайн
857
admonТы всё равно ищешь по тегу. Нужно просто из содержимого тега удалить всё, кроме цифр. Оставшиеся цифры образуют число.
тысячный разряд отделен пробелом
Отредактировано py.user.next (Авг. 28, 2015 02:38:28)
Офлайн
0
'^>[^A-Za-zА-Яа-я]\s<$'
Отредактировано admon (Авг. 28, 2015 11:59:33)
Офлайн
857
>>> import re >>> >>> s = re.sub(r'[^\d]', '', '5 217 вакансий ') >>> s '5217' >>>
Офлайн
0
с яндексом разобрался, спасибо, с хх как будет?
url = 'http://hh.ru/search/vacancy?clusters=true&enable_snippets=true&area=2' f = urllib.urlopen(url) soup = BeautifulSoup(f) i = soup.find_all('a','?enable_snippets=true&clusters=true&area=2&specialization=14&from=cluster_professionalArea') print str(i).decode('utf-8').encode('windows-1251')
<a class="clusters-value" href="?enable_snippets=true&clusters=true&area=2&specialization=17&from=cluster_professionalArea"><span class="clusters-value__name" data-qa="serp__cluster-item-title">Продажи</span> <span class="clusters-value__count" data-qa="serp__cluster-item-number">9082</span></a>
Офлайн
857
admonЗадача в чём?
с яндексом разобрался, спасибо, с хх как будет?
Офлайн
0
http://hh.ru/search/vacancy?clusters=true&enable_snippets=true&area=2
<a class="clusters-value" href="?enable_snippets=true&clusters=true&area=2&specialization=17&from=cluster_professionalArea"><span class="clusters-value__name" data-qa="serp__cluster-item-title">Продажи</span> <span class="clusters-value__count" data-qa="serp__cluster-item-number">9082</span></a>
Офлайн
857
Сначала найди все названия профобластей.
Они находятся в списке
<ul class="clusters-list" data-qa="serp__cluster-group-item">
<li class="clusters-list__item" data-qa="serp__cluster-item">
<li class="clusters-list__item clusters-list__item_expandable" data-qa="serp__cluster-item">
<span class="clusters-value__name" data-qa="serp__cluster-item-title">Продажи</span>
<span class="clusters-value__count" data-qa="serp__cluster-item-number">8951</span>
admonНадо искать не по тегу a, а по тегам ul, li и span, заглядывая в их классы.i = soup.find_all('a','?enable_snippets=true&clusters=true&area=2&specialization=14&from=cluster_professionalArea')
Отредактировано py.user.next (Авг. 29, 2015 02:03:34)
Офлайн
0
url = 'http://hh.ru/search/vacancy?clusters=true&enable_snippets=true&area=2' f = urllib.urlopen(url) soup = BeautifulSoup(f) i = soup.find_all('ul', 'li') print(i)
Офлайн
24
admon
вывод пустует.
f = urllib.urlopen(url).read()
Офлайн