1
0
Pārlūkot izejas kodu

google - better url parsing

Innocenty Enikeew 9 gadi atpakaļ
vecāks
revīzija
d4bed7b48e
2 mainītis faili ar 10 papildinājumiem un 5 dzēšanām
  1. 1 0
      chatikbot.asd
  2. 9 5
      google.lisp

+ 1 - 0
chatikbot.asd

@@ -17,6 +17,7 @@
                #:plump
                #:sqlite
                #:trivial-utf-8
+               #:quri
                #:yason)
   :serial t
   :components ((:file "package")

+ 9 - 5
google.lisp

@@ -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)