Johann Woelper пре 7 година
родитељ
комит
5e35a801a5
1 измењених фајлова са 55 додато и 14 уклоњено
  1. 55 14
      src/main.rs

+ 55 - 14
src/main.rs

@@ -32,21 +32,59 @@ fn parse_url(url: &str) {
 
     for node in Document::from_read(text.as_bytes())
         .unwrap()
-        .find(Name("a"))
-        .filter(|n| n.attr("href").is_some())
-        .filter(|n| n.attr("href").unwrap().contains("item.php?id="))
-        // .for_each(|x| println!("{}", x));
+        // .find(Name("a"))
+        // .filter(|n| n.attr("href").is_some())
+        // .filter(|n| n.attr("href").unwrap().contains("item.php?id="))
+        .find(Name("tr"))
+        .filter(|x| x.attr("bgcolor").is_some())
+        .filter(|x| x.attr("align").is_none())
+
         {
+
+            let name = node
+                .children()
+                .filter(|x| x.name() == Some("td"))
+                .filter(|x| x.attr("align") == Some("LEFT"))
+                .flat_map(|x| x.children())
+                .filter(|x| x.name() == Some("a"))
+                .flat_map(|x| x.children())
+                .map(|x| x.text())
+                // .filter(|x| x.name() == Some("Text"))
+                .collect::<Vec<_>>()
+                ;
+            println!("NAME\t{:?}", &name.get(0));
+
+            let prices = node
+                .children()
+                .filter(|x| x.text().contains("EUR"))
+                .flat_map(|x| x.children())
+                .map(|x| parse_price(&x.text()))
+                .flat_map(|x| x)
+                .collect::<Vec<_>>();
+
+            println!("PRICE\t{:?}", prices.get(0));
+
+
+                if let t_remaining = node
+                    .children()
+                    .filter(|x| x.attr("align") == Some("center"))
+                    .filter(|x| x.attr("nowrap").is_some())
+                    .flat_map(|x| x.children())
+                    .filter(|x| !x.text().is_empty())
+                    .collect::<Vec<_>>() {
+                        // dbg!(&t_remaining.children());
+                        println!("REM\t{:?}", t_remaining);
+
+                    }
+            
             // dbg!(&node);
             if let Some(parent_td) = &node.parent() {
                 if let Some(parent_tr) = &parent_td.parent() {
-                    let price = parent_tr
-                        .children()
-                        .filter(|x| x.text().contains("EUR"))
-                        .map(|x| parse_price(&x.text()))
-                        .filter(|x| x.is_some())
-                        .map(|x| x.unwrap())
-                        .collect::<Vec<_>>();
+             
+
+
+
+
 
                     if let Some(t_remaining) = parent_tr
                         .children()
@@ -60,13 +98,16 @@ fn parse_url(url: &str) {
                         .children()
                         .filter(|x| x.attr("align") == Some("center"))
                         .filter(|x| x.attr("nowrap").is_some())
+                        // .map(|x| x.name())
                         .flat_map(|x| x.children())
-                        // .map(|x| x.text())
-                        // .filter(|x| !x.is_empty())
+                        .map(|x| x.text())
+                        .filter(|x| !x.is_empty())
                         .collect::<Vec<_>>()
+
+
                         // .join(" ")
                         ;
-                    dbg!(_a);
+                    // println!("{:?}", &_a);
 
                     // let _r = t_remaining.get(0);