Server-side jquery

后端 未结 2 1994
暗喜
暗喜 2020-12-19 16:01

Say I have a script written in perl or python. What\'s the easiest way to write a function that would use jquery selectors on strings as part of it? i.e. to be able to do:

相关标签:
2条回答
  • 2020-12-19 16:18

    if i understand your question correctly you want is something like phantom.js. PhantomJS is a headless WebKit with JavaScript API. you can inject jquery into it and use all the jquery selectors to manipulate the dom. you can make it work like a standalone server aswell.

    0 讨论(0)
  • 2020-12-19 16:31

    I am confused as you have tagged the question with "node.js" though you refer to Python or Perl in your question. Running node.js and/or phantom.js just to run a selector on an HTML DOM sounds quite heavyweight to me, and as always introducing whole chains of dependencies should be considered carefully in real-world projects.

    So for Python I would suggest running a combination of BeautifulSoup and soupselect, as mentioned in this answer. You can then do things like:

    from BeautifulSoup import BeautifulSoup as Soup
    from soupselect import select
    import urllib
    
    soup = Soup(urllib.urlopen('http://slashdot.org/'))
    select(soup, 'div.title h3')
    

    Note that soupselect seems to implement only a subset of jquery's CSS3 selectors, so for things like e.g. sibling selectors or pseudo-classes it may not work. In this case I would advise to consider porting the relevant part of the project to node.js were you can run Sizzle (jQuery's selector engine) or cheerio standalone in a somewhat lightweight environment.

    0 讨论(0)
提交回复
热议问题