Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

comment on

( #3333=superdoc: print w/replies, xml ) Need Help??
I had a quick glimpse into the docs of ->xpath

and found this passages and emphasized two parts

    $mech->xpath( $query, %options )

    • my $link = $mech->xpath('//a[id="clickme"]', one => 1);
      # croaks if there is no link or more than one link found
    • my @para = $mech->xpath('//p');
      # Collects all paragraphs
    • my @para_text = $mech->xpath('//p/text()', type => $mech->xpathResult('STRING_TYPE'));
      # Collects all paragraphs as text
    ...
    • node - node relative to which the query is to be executed. Note that you will have to use a relative XPath expression as well. Use

      .//foo

      instead of

      //foo

      Querying relative to a node only works for restricting to children of the node, not for anything else. This is because we need to do the ancestor filtering ourselves instead of having a Chrome API for it.

two insights into potential bottlenecks so:

  • the module has to identify the parent itself, instead of assembling an xpath. Putting all into one path by yourself might be far more efficient (and probably your identifier is not as unambiguous as you thought)
  • you might get expensive wrapper objects for each result, unless you specify a type of text

Of course this is all speculation as long as you can't provide an SSCCE ... :)

Cheers Rolf
(addicted to the 𐍀𐌴𐍂𐌻 Programming Language :)
Wikisyntax for the Monastery


In reply to Re: WWW::Mechanize::Chrome VERY slow on xpath obtaining TDs of a TR by LanX
in thread WWW::Mechanize::Chrome VERY slow on xpath obtaining TDs of a TR by ait

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (1)
As of 2023-06-07 21:38 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    How often do you go to conferences?






    Results (29 votes). Check out past polls.

    Notices?