Have you printed $mech->content? I assume that Firefox only supports CSS selectors for HTML. The page you gave is RSS (or ATOM or whatever other feed format). I assume that Firefox does not want to run CSS queries against RSS. Replacing your call to ->click with a simple call that returns the elements shows that no elements get found for either ->selector or ->xpath.
use WWW::Mechanize::Firefox; my $firefox = WWW::Mechanize::Firefox -> new ( ); $firefox -> get("http://feeds.cbsnews.com/podcast_eveningnews_video_1? +tag=contentMain%3bcontentBody"); print $firefox->ct; print $_->{innerHTML} for $firefox->selector('a'); print $_->{innerHTML} for $firefox->xpath('//a');
I'm not sure what goes wrong here, but I assume that Firefox does not really support CSS or XPath queries for documents other than HTML documents. Even if it did, I highly doubt that the surrounding event model would support the ->click event as HTML pages do.
You can consider looking at Mojolicious, Web::Magic, Web::Scraper or App::scrape, all of whom do not munge the RSS through Firefox and all of whom support CSS and XPath queries - maybe you have more luck extracting the URLs with those.
In reply to Re^3: WWW::Mechanize::Firefox CSS Selectors
by Corion
in thread WWW::Mechanize::Firefox CSS Selectors
by Lobatto
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |