Bonjour à tous,

Je désire filtrer les offres proposées sur ce site.
Pour cela, il est nécessaire de cliquer sur "Filtrer les consultations", choisir "AF01 | Matériel de loisir", puis cliquer sur "Filtrer".

Je ne sais pas comment m'y prendre malgré mes recherches : il me semble que nous sommes sur du "HTML caché" et que cela doit être faisable. Après une journée d'essais je dois reconnaitre que je m'y casse les dents

Voici le détail de mon code (fonctionnel), dont le but est d'extraire les titres et dates :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class AjiScraperSpider(scrapy.Spider):
    name = 'aji_scraper'
    allowed_domains = ['mapa.aji-france.com']
    start_urls = ['https://mapa.aji-france.com/mapa/marche']
 
    def parse(self, response):
      blocks = response.xpath('//div[@id="container-content"]/a/@href').extract()
      i = 0
      for block in blocks:
        i += 1
        title = response.xpath('.//div[@class="panel-heading"]/b/text()').extract()[i-1]
        str_tender_date = response.xpath('//span[@class="label label-primary pull-right"]/b/text()').re('\d{2}\/\d{2}\/\d{4}')[i - 1]
 
        print("****************************")
 
        items = {
          'Title': title,
          'date': str_tender_date
        }
 
        yield items
Pour info j'ai utilisé précédemment Selenium, mais le problème est que le script doit à terme être lancé automatiquement depuis un serveur.

Un immense merci pour votre aide !!