Faites bouger votre parse

Extraction de données Web en Python

Thomas Laetsch

Data Scientist, NYU

Encore une fois

class DCspider( scrapy.Spider ):
    name = "dcspider"

    def start_requests( self ):
        urls = [ 'https://www.datacamp.com/courses/all' ]
        for url in urls:
            yield scrapy.Request( url = url, callback = self.parse )

    def parse( self, response ):
        # exemple simple : écrire le HTML
        html_file = 'DC_courses.html'
        with open( html_file, 'wb' ) as fout:
            fout.write( response.body )
Extraction de données Web en Python

Vous connaissez déjà !

def parse( self, response ):

# code d'analyse d'entrée avec response que vous connaissez déjà !
# sortie vers un fichier, ou...
# parcourir le Web !
Extraction de données Web en Python

Liens des cours DataCamp : enregistrer dans un fichier

class DCspider( scrapy.Spider ):
    name = "dcspider"

    def start_requests( self ):
        urls = [ 'https://www.datacamp.com/courses/all' ]
        for url in urls:
            yield scrapy.Request( url = url, callback = self.parse )

def parse( self, response ):
links = response.css('div.course-block > a::attr(href)').extract()
filepath = 'DC_links.csv' with open( filepath, 'w' ) as f: f.writelines( [link + '/n' for link in links] )
Extraction de données Web en Python

Liens des cours DataCamp : analyser de nouveau

class DCspider( scrapy.Spider ):
    name = "dcspider"

    def start_requests( self ):
        urls = [ 'https://www.datacamp.com/courses/all' ]
        for url in urls:
            yield scrapy.Request( url = url, callback = self.parse )

def parse( self, response ):
links = response.css('div.course-block > a::attr(href)').extract()
for link in links: yield response.follow( url = link, callback = self.parse2 )
def parse2( self, response ): # analyser les pages de cours ici !
Extraction de données Web en Python

Une araignée qui suit des liens sur le site de DataCamp.

Extraction de données Web en Python

Johnny Parse

Extraction de données Web en Python

Preparing Video For Download...