ウィキペディアは、すべての記事にリンクを提供しています(pdfとして記事をダウンロードしてください)。私は最初にWikipediaのリンクを取得してレンダリングリンクを出力する小さなHaskellスクリプトを書いた。私はレンダリングURLを入力として与えていますが、空のタグを取得していますが、ブラウザの同じURLにダウンロードリンクがあります。wikipediaからpdfファイルをダウンロード
誰かがこの問題を解決する方法を教えてください。コードはideoneです。
import Network.HTTP
import Text.HTML.TagSoup
import Data.Maybe
parseHelp :: Tag String -> Maybe String
parseHelp (TagOpen _ y) = if any (\(a , b) -> b == "Download a PDF version of this wiki page") y
then Just $ "http://en.wikipedia.org" ++ snd ( y !! 0)
else Nothing
parse :: [ Tag String ] -> Maybe String
parse [] = Nothing
parse (x : xs)
| isTagOpen x = case parseHelp x of
Just s -> Just s
Nothing -> parse xs
| otherwise = parse xs
main = do
x <- getLine
tags_1 <- fmap parseTags $ getResponseBody =<< simpleHTTP (getRequest x) --open url
let lst = head . sections (~== "<div class=portal id=p-coll-print_export>") $ tags_1
url = fromJust . parse $ lst --rendering url
putStrLn url
tags_2 <- fmap parseTags $ getResponseBody =<< simpleHTTP (getRequest url)
print tags_2
:
ここでリダイレクトをサポートして
String
にURLをダウンロードするための迅速かつ汚い機能です// www.youtube.com/watch?v=juBDM3fb-i0 –