
24.07.2009, 19:16
|
|
Новичок
Регистрация: 24.07.2009
Сообщений: 24
Провел на форуме: 71052
Репутация:
5
|
|
[python] Парсер мейлов по резюме на rabota.mail.ru
Парсер мейлов по резюме на rabota.mail.ru
country - код страны
lang - язык
sex - пол
edu - образование
Все эти значения можно получить в сорце http://rabota.mail.ru/resume_search/
delay - задержка в секундах
get_fio (1 или 0) - получать ли ФИО
get_phone (1 или 0) - получать ли телефон (если есть)
Резальтат будет записан в файл output.txt в кодировке utf-8. Кому нужна другая кодировка правьте сами
Формат: "email@host.domain", "phone", "fio"
Код:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import re
import urllib
import time
country = '0'
lang = '0'
sex = '0'
edu = '0'
delay = 0
get_fio = 1
get_phone = 1
page = 1
count = 1
output_file = open('output.txt', 'w')
while True:
source = urllib.urlopen('http://rabota.mail.ru/resume_search/?go=1&search_type=1&order_type=1&country=' + country + '&spec_group=0&salary_currency=2&lang=' + lang + '&lang_level=0&sex=' + sex + '&edu=' + edu + '&resume_on_page=3&publics=0&table=0&page=' + str(page)).read()
if len(re.findall('<div class="full"><a href="/resume/(.*?)/"', source)) != 0:
for id in re.findall('<div class="full"><a href="/resume/(.*?)/"', source):
vacancy = urllib.urlopen('http://rabota.mail.ru/resume/' + id).read()
email = re.findall('<td><a href="mailto:.*?">(.*?)</a></td>', vacancy)[0]
output = '"' + email + '"'
if get_phone:
try:
phone = re.findall('\t\t\t\t\t\t<td>(\+.*?)</td>', vacancy)[0].replace(' ', '')
except:
phone = 'None'
output += ', "' + phone + '"'
if get_fio:
fio = re.findall('<div class="cmp_name">(.*?)<br />', vacancy)[0]
output += ', "' + fio + '"'
print str(count) + '\t' + email
output_file.write(output.decode('windows-1251').encode('utf-8') + '\n')
output_file.flush()
count += 1
time.sleep(delay)
page += 1
else:
break
Последний раз редактировалось e4key; 24.07.2009 в 23:40..
|
|
|