|
|
@@ -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);
|
|
|
|