skoney has asked for the wisdom of the Perl Monks concerning the following question:
As an example, let's say that every day Bob, Carol, Ted, & Alice each publish what they plan on eating for breakfast, lunch, and dinner for the day in a table on their respective websites. I want to go to each website, get the data from each table and store it in a hash so I can then create a table on my own web page which will summarize what each person is eating that day. The reason for the hash is that it's going to be tied to a DBM to which I will be adding other data from other scripts, and this way everything is stored in one DBM for easy access.
For example, here's what Bob's table would look like:
And the hash keys would be:<TABLE> <TR>><TH></TH><TH>Breakfast</TH><TH>Lunch</TH><TH>Dinner</TH></TR><TR> +<TH>Fruit</TH><TD>Banana</TD><TD>Orange</TD><TD>Apple</TD></TR><TR><T +H>Meat</TH><TD>Bacon</TD><TD>Baloney</TD><TD>Burger</TD></TR><TR><TH> +Beverage</TH><TD>Coffee</TD><TD>Soda</TD><TD>Beer</TD></TR> </TABLE>
Using the sample code in the HTML::TableExtract documentation I can print the data on the screen:bob_fruit_breakfast carol_fruit_breakfast bob_fruit_lunch carol_fruit_lunch bob_fruit_dinner carol_fruit_dinner bob_meat_breakfast carol_meat_breakfast bob_meat_lunch carol_meat_lunch bob_meat_dinner carol_meat_dinner bob_beverage_breakfast bob_beverage_lunch and so on.... bob_beverage_dinner
but I can't figure out how to store it in a hash. It's obvious to me that @$row contains the data but I haven't been successful in getting it into the hash so that everything lines up, ie. the key "bob_fruit_breakfast" will contain the value "banana", etc.use HTML::TableExtract; $te = new HTML::TableExtract (headers=>[qw(Breakfast Lunch Dinner)]); $te->parse ($html_string); foreach $ts ($te->tables) { foreach $row ($ts->rows) { print join(',', @$row), "\n"; } }
Any help would be greatly appreciated!
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Getting data from HTML::TableExtract into a hash
by Krambambuli (Curate) on Oct 13, 2007 at 18:58 UTC | |
by skoney (Novice) on Oct 14, 2007 at 14:27 UTC |