Лови, чо
Цитата:
#!/usr/bin/env python
# coding: utf8
import sys
import urllib2
import lxml.html
import time
search_url = 'http://mamba.ru/search.phtml?ia=M&lf=F&af=30&at=&wp=0&wv=0&wvc=0&ni=1&wr=0&gid=1340124197&sz=b&vs=2&s_c=3159_3761_3770_0&geo=0&s_tg=&geo=0&t=a'
class MambaPage:
def __init__(self, url, offset = 0):
self.offset = offset
if offset > 0:
self.offset_url = url + '&offset=' + str(offset)
else:
self.offset_url = url
self.url = url
#print "page " + str(offset / 10)
self._dom_prepare()
self.count = self._parse()
def _parse(self):
def is_good(whore):
return self._has_intim_photo(whore) or self._is_cougar(whore)
whore_list = self.root.cssselect('.SearchResult li')
# фильтруем от говн
good_list = filter(is_good, whore_list)
# теперь показываем, что нашли
for item in good_list:
anketa = item.cssselect('a.u-name')[0].get('href')
print anketa
return len(whore_list)
def _has_intim_photo(self, whore):
img = whore.cssselect('.u-photo a img')[0]
return img.get('src').count('adult') > 0
def _is_cougar(self, whore):
em = whore.cssselect('.s-param')
if not em:
return True
em = em[0]
# отсеиваем по возрасту который ищет
return len(filter(lambda item: em.text.count(item) > 0, ['18', '21', '26'])) > 0
def _dom_prepare(self):
try:
page = urllib2.urlopen(self.offset_url)
html = page.read()
except:
# не получилось. ждем и пробуем еще раз
print 'error ' + self.offset_url
time.sleep(10)
page = urllib2.urlopen(self.offset_url)
html = page.read()
self.root = lxml.html.document_fromstring(html).getroottree().getroot()
def next(self):
if self.count > 0:
return MambaPage(self.url, self.offset + 10)
else:
return False
page = MambaPage(search_url)
while page:
page = page.next()
Только как юзать, разбирайся сам.