1

私の質問は、ここにある別の質問に関連しています Common Lisp で HTML テーブルをスクレイピングしますか?

Common Lisp で Web ページからデータを抽出しようとしています。現在、drakma を使用して http リクエストを送信しています。chtml を使用して、探しているデータを抽出しようとしています。私がスクラップしようとしているウェブページはhttp://erg.delph-in.net/logonです。ここに私のコードがあります

(defun send-request (sentence)
 "sends sentence in an http request to logon for parsing, and recieves
  back the webpage containing the MRS output"
 (drakma:http-request "http://erg.delph-in.net/logon" 
                   :method :post 
                   :parameters `(("input" . ,sentence)
                                 ("task" . "Analyze")
                                 ("roots" . "sentences")
                                 ("output" . "mrs")
                                 ("exhaustivep" . "best")
                                 ("nresults" . "1"))))

そして、これが私が問題を抱えている機能です

(defun get-mrs (sentence)
    (let* (
       (str (send-request sentence))
       (document (chtml:parse str (cxml-stp:make-builder))))
      (stp:filter-recursively (stp:of-name "mrsFeatureTop") document)))

基本的に、抽出する必要があるすべてのデータは html テーブルにありますが、ここに貼り付けるには大きすぎます。私の get-mrs 関数では、mrsFeatureTop という名前のタグを取得しようとしていましたが、NCName 'onclick ではなく、エラーが発生しているため、これが正しいかどうかはわかりません。テーブルのスクレイピングに関するヘルプは大歓迎です。ありがとうございました。

4

1 に答える 1