|
|
@@ -3,12 +3,16 @@
|
|
|
(defparameter +google-search-url+ "http://www.google.com/search")
|
|
|
|
|
|
(defun google-search (query)
|
|
|
- (loop for result across (clss:select "ol > div" (xml-request +google-search-url+
|
|
|
- :parameters (list (cons "q" query))))
|
|
|
- when (select-text "cite" result)
|
|
|
+ (loop
|
|
|
+ for result across (clss:select ".g" (xml-request +google-search-url+
|
|
|
+ :parameters (list (cons "q" query))))
|
|
|
+ for a = (elt (clss:select ".r>a" result) 0)
|
|
|
+ for uri = (quri:uri (plump:get-attribute a "href"))
|
|
|
+ for q = (aget "q" (quri:url-decode-params (quri:uri-query uri)))
|
|
|
+ when q
|
|
|
collect (list
|
|
|
- (cons :url (select-text "cite" result))
|
|
|
- (cons :title (select-text "h3" result))
|
|
|
+ (cons :url q)
|
|
|
+ (cons :title (select-text "*" a))
|
|
|
(cons :desc (select-text ".st" result)))))
|
|
|
|
|
|
(defun google-format-search-results (results)
|