Wikipedia предоставляет ссылку (левая сторона на печати / экспорте) на каждой статье, чтобы загрузить статью как PDF. Я написал небольшой скрипт Haskell, который сначала получает ссылку Wikipedia и выводит ссылку рендеринга. Когда я даю URL-адрес рендеринга в качестве ввода, я получаю пустые теги, но тот же URL в браузере предоставляет ссылку для скачивания.
Может кто-нибудь, пожалуйста, скажи мне, как решить эту проблему? Формированный код на 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 ( ~== "" ) $ tags_1
url = fromJust . parse $ lst --rendering url
putStrLn url
tags_2 <- fmap parseTags $ getResponseBody =<< simpleHTTP ( getRequest url )
print tags_2
6
задан hammar 10 September 2011 в 01:43
поделиться