日々精進

新しく学んだことを書き留めていきます

mechanizeで取得できないリンク

mechanizeで目的のページのリンクを取得しているときに、どうしても取得できないリンクがありました。

agent.page.search("a").each do |link|
...
end

↑のようにすべてのaタグを抜き出してもその中に目的のリンクがない。

agent.page.links.each do |link|
...
end

↑もだめ。
色々考えた結果、HTMLの構文がおかしいのでは、と思いhtreeというgemを使ってHTMLを修復してからmechanizeでparseしようとしました。

agent.get(HTree.parse(open(url).read).display_html)

↑のコードを実行すると以下のエラーメッセージが。

`output_cdata': CDATA cannot contain 

今のところ解決できず。