Hacker Newsnew | comments | ask | jobs | submitlogin
Introducing SelectorGadget: point and click minimal CSS selectors (selectorgadget.com)
135 points by tectonic 559 days ago | comments


3 points by mattjaynes 559 days ago | link

Wow, this made my day. I've been using FireQuark (a custom firebug that provides CSS selectors - http://www.quarkruby.com/2007/9/5/firequark-quick-html-scree...) and while it was very helpful, SelectorGadget will remove sooo much more of the pain of scraping. Major kudos.

As an aside, I'll mention the nokogiri gem (almost identical to hpricot, but under much more active development), that's what I've been using and it's excellent. http://github.com/tenderlove/nokogiri/tree/master

-----

2 points by tectonic 559 days ago | link

Just so you know, there was, and may still be, an off-by-one error in Hpricot's implementation of nth-child that may confuse you when using the selectors generated by SelectorGadget.

-----

4 points by fizx 559 days ago | link

It's a one char fix:

http://github.com/fizx/hpricot/commit/1208019ade1af02816de62...

-----

2 points by mattjaynes 559 days ago | link

Great point. I haven't looked, but I think nokogiri fixes that bug. I think that was one tenderlove's motivations for creating nokogiri. He talks about it more on his blog:

http://tenderlovemaking.com/2008/10/30/nokogiri-is-released/

"I just want to tell you that you shouldn't worry about that old legacy code that uses Hpricot. Nokogiri can be used as a drop in replacement! Really! Nokogiri doesn't reproduce the bugs that are in Hpricot, but should work in most cases. Just use "Nokogir::Hpricot()" to parse your HTML. Of course, I've tried to keep the syntax of Hpricot that I like."

-----

21 points by tectonic 559 days ago | link

Please tell me when you find sites that it doesn't work on, there are so many edge cases.

-----

5 points by chrisconley 559 days ago | link

This is awesome. It would've have been super useful building our mobile interface to Philadelphia's regional rail schedules where we scraped SEPTA's site for data. http://www.septa.org/service/sched/r2s_wk.html is an example of the markup we had to deal with.

I think I'll have to go back and crosscheck your selectors with what I came up with to see if we can't improve anything. Thanks!

-----

2 points by thaumaturgy 558 days ago | link

Oh sweet merciful Bob that has got to be some of the nastiest markup I've ever seen.

-----

1 point by matt1 559 days ago | link

Whoa I remember you from one of the Philly on Rails meetings.

Small world. See you at the next pub night?

-----

9 points by dominik 559 days ago | link

Excellent work; I also liked your screencast, you did a good job in quickly showing what SelectorGadget did!

-----

2 points by bprater 559 days ago | link

Agreed -- and then gave suggestions below. Perfect! I immediately started coming up with ways I could use it on a couple projects I'm working on.

I hope all purveyors of webapps will use this as a shining example of a demo well done.

-----

5 points by andreyf 559 days ago | link

This is the kind of stuff that blows my mind. Between all of the people who will ever use it, you've probably saved a lifetime's worth of fiddling with CSS selectors. Kudos to you, sir!

-----

4 points by sam_in_nyc 559 days ago | link

Very nice tool. Reminds me of the Dapper interface. I could see this being used to build some sort of notifier service. For example, "notify me when any of these change."

Great work

-----

4 points by quilby 559 days ago | link

You are probably talking about - http://www.dapper.net/dapp-factory.jsp , which is basically a much more powerful 'selectorgadget'.

Edit: After using selectorgadget for a couple of minutes I found a case where selectorgadget works much better than dapper.net. selectorgadget is great!

-----

3 points by CalmQuiet 559 days ago | link

Impressive flexibility. I haven't encountered any problems yet on FF or Safari.

Another use I see for it is in teaching JS / jQuery / etc.

-----

1 point by jrockway 559 days ago | link

OK, I know this is off topic, but... I read this article an hour or so ago, and I have had the Inspector Gadget theme song stuck in my head since then.

Someone make it stop :)

-----

3 points by cpher 559 days ago | link

Very clever. It's like a souped-up version of the Outline Current Element tool in Firefox's Web Developer Toolbar. Nice work!

-----

1 point by misterbwong 559 days ago | link

Extremely useful. I love it. I've been using the Firefox Web Developer Toolbar to guess at my selectors, but this is infinitely faster.

-----

1 point by jonny_noog 558 days ago | link

Very cool. Thank you.

Thanks also for exposing me to screentoaster.com, I've been hoping for a service like this.

-----

1 point by akikuchi 558 days ago | link

Amazing timing on this release- I just learned the basics of CSS the other day, and this is going to be a really helpful tool to keep the learning process going. Well done and thanks!

-----

1 point by tectonic 547 days ago | link

I just pushed out XPath generation support to the dev version.

-----

1 point by PStamatiou 559 days ago | link

Andrew, this is badass! Great work.

-----

1 point by rjblackman 559 days ago | link

awesome. seems to work in chrome just fine. I can't see how this is useful for scraping though, is there scraping software that can take css selectors as criteria?

I've previously just used mechanize/hpricot and copied the xpath from firebug to get the areas i want to scrape.

-----

3 points by tectonic 559 days ago | link

Hpricot can take CSS selectors.

-----

1 point by dw0rm 557 days ago | link

lxml.cssselect in python

-----

1 point by sarp 559 days ago | link

Brilliant!

-----




Lists | RSS | Search | Bookmarklet | Guidelines | FAQ | News News | Feature Requests | Y Combinator | Apply | Library

Analytics by Mixpanel