diff --git a/bridges/DonnonsBridge.php b/bridges/DonnonsBridge.php
new file mode 100644
index 00000000..77413499
--- /dev/null
+++ b/bridges/DonnonsBridge.php
@@ -0,0 +1,123 @@
+ array(
+ 'name' => 'Url de recherche',
+ 'required' => true,
+ 'exampleValue' => '/Sport/Ile-de-France',
+ 'pattern' => '\/.*',
+ 'title' => 'Faites une recherche sur le site. Puis copiez ici la fin de l’url. Doit commencer par /',
+ ),
+ 'p' => array(
+ 'name' => 'Nombre de pages à scanner',
+ 'type' => 'number',
+ 'defaultValue' => 5,
+ 'title' => 'Indique le nombre de pages de donnons.org qui seront scannées'
+ )
+ )
+ );
+
+ public function collectData() {
+ $pages = $this->getInput('p');
+
+ for($i = 1; $i <= $pages; $i++) {
+ $this->collectDataByPage($i);
+ }
+ }
+
+ private function collectDataByPage($page) {
+ $uri = $this->getPageURI($page);
+
+ $html = getSimpleHTMLDOM($uri)
+ or returnServerError('No results for this query.');
+
+ $searchDiv = $html->find('div[id=search]', 0);
+
+ if(!is_null($searchDiv)) {
+ $elements = $searchDiv->find('a.lst-annonce');
+ foreach($elements as $element) {
+ $item = array();
+
+ // Lien vers le don
+ $item['uri'] = self::URI . $element->href;
+ // Id de l'objet
+ $item['uid'] = $element->getAttribute('data-id');
+
+ // Grab info from json
+ $jsonString = $element->find('script', 0)->innertext;
+ $json = json_decode($jsonString, true);
+
+ $name = $json['name'];
+ $category = $json['category'];
+ $date = $json['availabilityStarts'];
+ $description = $json['description'];
+ $city = $json['availableAtOrFrom']['address']['addressLocality'];
+ $region = $json['availableAtOrFrom']['address']['addressRegion'];
+
+ // Grab info from HTML
+ $imageSrc = $element->find('img.ima-center', 0)->getAttribute('data-src');
+ $image = self::URI . $imageSrc;
+ $author = $element->find('div.avatar-holder', 0)->plaintext;
+
+ $content = '
+
+
' . $description . '
+Lieu : ' . $city . ' - ' . $region . '
+Par : ' . $author . '
+Date : ' . $date . '
+