Si vous voulez simuler une présence humaine sur le web, oubliez les macros qui squattent votre clavier et votre souris et passez à RoboBrowser. Cette bibliothèque Python permet d’aller sur la page web de votre choix, remplir des formulaires, les soumettre, récupérer des contenus ou cliquer sur des liens. C’est un scraper avec des notions de navigation web un peu plus poussées.
Alors oui effectivement, cela peut servir à des spammeurs de commentaires, mais je pense que les mecs ne m’ont pas attendu. Par contre, ce qui est cool, c’est que si vous développez vous-même vos outils et que vous vous connectez à des plateformes extérieures qui n’ont pas d’API, il est parfaitement envisageable grâce à RoboBrowser, d’intégrer ces plateformes dans vos workflows.
Voici un exemple de code où RoboBrowser est utilisé pour récupérer les paroles d’une chanson :
> ```
> import re from robobrowser import RoboBrowser # Browse to Genius browser = RoboBrowser(history=True) browser.open('http://genius.com/') # Search for Porcupine Tree form = browser.get_form(action='/search') form # form['q'].value = 'porcupine tree' browser.submit_form(form) # Look up the first song songs = browser.select('.song_link') browser.follow_link(songs[0]) lyrics = browser.select('.lyrics') lyrics[0].text # nHear the sound of music ... # Back to results page browser.back() # Look up my favorite song song_link = browser.get_link('trains') browser.follow_link(song_link) # Can also search HTML using regex patterns lyrics = browser.find(class_=re.compile(r'blyricsb')) lyrics.text # nTrain set and match spied under the blind...
> ```
Et voici un autre exemple ou RoboBrowser est utilisé pour remplir un formulaire :
> ```
> from robobrowser import RoboBrowser browser = RoboBrowser() browser.open('http://twitter.com') # Get the signup form signup_form = browser.get_form(class_='signup') signup_form # # Inspect its values signup_form['authenticity_token'].value # 6d03597 ... # Fill it out signup_form['user[name]'].value = 'python-robot' signup_form['user[user_password]'].value = 'secret' # Submit the form browser.submit_form(signup_form)
> ```