Форум сайта python.su
#!/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)
Офлайн
admonТы всё равно ищешь по тегу. Нужно просто из содержимого тега удалить всё, кроме цифр. Оставшиеся цифры образуют число.
тысячный разряд отделен пробелом
Отредактировано py.user.next (Авг. 28, 2015 02:38:28)
Офлайн
'^>[^A-Za-zА-Яа-я]\s<$'
Отредактировано admon (Авг. 28, 2015 11:59:33)
Офлайн
>>> import re >>> >>> s = re.sub(r'[^\d]', '', '5 217 вакансий ') >>> s '5217' >>>
Офлайн
с яндексом разобрался, спасибо, с хх как будет?
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>
Офлайн
admonЗадача в чём?
с яндексом разобрался, спасибо, с хх как будет?
Офлайн
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>
Офлайн
Сначала найди все названия профобластей.
Они находятся в списке
<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)
Офлайн
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)
Офлайн
admon
вывод пустует.
f = urllib.urlopen(url).read()
Офлайн