Extraction du Web en Python

Importation intermédiaire de données en Python

Hugo Bowne-Anderson

Data Scientist at DataCamp

HTML

  • Mélange de données non structurées et structurées

  • Données structurées :

    • Ont un modèle de données prédéfini, ou

    • Sont organisées d'une façon définie

  • Données non structurées : ne présentent aucune de ces propriétés

ch_1_3.008.png

Importation intermédiaire de données en Python

BeautifulSoup

  • Analyser et extraire des données structurées à partir de HTML

ch_1_3.011.png

  • Nettoyer le « tag soup » et extraire l'information
Importation intermédiaire de données en Python

BeautifulSoup

from bs4 import BeautifulSoup
import requests
url = 'https://www.crummy.com/software/BeautifulSoup/'
r = requests.get(url)
html_doc = r.text
soup = BeautifulSoup(html_doc)
Importation intermédiaire de données en Python

Soupe embellie

print(soup.prettify())
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/transitional.dtd">
<html>
 <head>
  <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
  <title>
   Beautiful Soup: We called him Tortoise because he taught us.
  </title>
  <link href="mailto:[email protected]" rev="made"/>
  <link href="/nb/themes/Default/nb.css" rel="stylesheet" type="text/css"/>
  <meta content="Beautiful Soup: a library designed for screen-scraping HTML and XML." name="Description"/>
  <meta content="Markov Approximation 1.4 (module: leonardr)" name="generator"/>
  <meta content="Leonard Richardson" name="author"/>
 </head>
 <body alink="red" bgcolor="white" link="blue" text="black" vlink="660066">
  <img align="right" src="10.1.jpg" width="250"/>
  <br/>
  <p>
Importation intermédiaire de données en Python

Explorer BeautifulSoup

  • Plusieurs méthodes, par exemple :
print(soup.title)
<title>Beautiful Soup: We called him Tortoise because he taught us.</title>
print(soup.get_text())
Beautiful Soup: We called him Tortoise because he taught us.
You didn't write that awful page. You're just trying to
get some data out of it. Beautiful Soup is here to 
help. Since 2004, it's been saving programmers hours or
days of work on quick-turnaround screen scraping 
projects.
Importation intermédiaire de données en Python

Explorer BeautifulSoup

  • find_all()
for link in soup.find_all('a'):
    print(link.get('href'))
bs4/download/
#Download
bs4/doc/
#HallOfFame
https://code.launchpad.net/beautifulsoup
https://groups.google.com/forum/?fromgroups#!forum/beautifulsoup
http://www.candlemarkandgleam.com/shop/constellation-games/
http://constellation.crummy.com/Constellation%20Games%20excerpt.html
https://groups.google.com/forum/?fromgroups#!forum/beautifulsoup
https://bugs.launchpad.net/beautifulsoup/
http://lxml.de/
http://code.google.com/p/html5lib/
Importation intermédiaire de données en Python

Passons à la pratique !

Importation intermédiaire de données en Python

Preparing Video For Download...