[Lolix] add search management in basic search
This commit is contained in:
parent
9cf7f01dae
commit
abbfad7ba1
3 changed files with 11 additions and 7 deletions
|
|
@ -139,9 +139,8 @@ class LolixBackend(BaseBackend, ICapJob):
|
|||
|
||||
def search_job(self, pattern=None):
|
||||
with self.browser:
|
||||
if not pattern:
|
||||
for job_advert in self.browser.advanced_search_job():
|
||||
yield job_advert
|
||||
for job_advert in self.browser.advanced_search_job(pattern=pattern):
|
||||
yield job_advert
|
||||
|
||||
def advanced_search_job(self):
|
||||
for advert in self.browser.advanced_search_job(region=self.config['region'].get(),
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ class LolixBrowser(BaseBrowser):
|
|||
'%s://%s/offre.php\?id=(?P<id>.+)' % (PROTOCOL, DOMAIN): AdvertPage,
|
||||
}
|
||||
|
||||
def advanced_search_job(self, region=0, poste=0, contrat=0, limit_date=0):
|
||||
def advanced_search_job(self, region=0, poste=0, contrat=0, limit_date=0, pattern=None):
|
||||
data = {
|
||||
'mode': 'find',
|
||||
'page': '0',
|
||||
|
|
@ -48,7 +48,7 @@ class LolixBrowser(BaseBrowser):
|
|||
|
||||
self.location('%s://%s/search.php' % (self.PROTOCOL, self.DOMAIN), urllib.urlencode(data))
|
||||
assert self.is_on_page(SearchPage)
|
||||
return self.page.iter_job_adverts()
|
||||
return self.page.iter_job_adverts(pattern)
|
||||
|
||||
@id2url(LolixJobAdvert.id2url)
|
||||
def get_job_advert(self, url, advert):
|
||||
|
|
|
|||
|
|
@ -69,12 +69,17 @@ class AdvertPage(BasePage):
|
|||
|
||||
|
||||
class SearchPage(BasePage):
|
||||
def iter_job_adverts(self):
|
||||
def iter_job_adverts(self, pattern):
|
||||
rows = self.document.getroot().xpath('//td[@class="Contenu"]/table/tr')
|
||||
for row in rows:
|
||||
cols = self.is_row_advert(row)
|
||||
if cols is not None:
|
||||
yield self.create_job_advert(cols)
|
||||
advert = self.create_job_advert(cols)
|
||||
if pattern:
|
||||
if pattern in advert.title:
|
||||
yield advert
|
||||
else:
|
||||
yield advert
|
||||
|
||||
def is_row_advert(self, row):
|
||||
cols = self.parser.select(row, 'td')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue