Мне было интересно, могу ли я написать программу Haskell для проверки обновлений некоторых романов по запросу, а веб-сайт, который я использую в качестве примера, - this. И у меня возникла проблема при отображении его содержимого (на mac el capitan). Простые коды:
import Network.HTTP
openURL :: String -> IO String
openURL = (>>= getResponseBody) . simpleHTTP . getRequest
display :: String -> IO ()
display = (>>= putStrLn) . openURL
Затем, когда я запускаю display "http://www.piaotian.net/html/7/7430/"
на ghci, появляются некоторые странные символы; первые строки выглядят так:
<title>×ß½øÐÞÏÉ×îÐÂÕ½Ú,×ß½øÐÞÏÉÎÞµ¯´°È«ÎÄÔĶÁ_Æ®ÌìÎÄѧ</title>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<meta name="keywords" content="×ß½øÐÞÏÉ,×ß½øÐÞÏÉ×îÐÂÕ½Ú,×ß½øÐÞÏÉÎÞµ¯´° Æ®ÌìÎÄѧ" />
<meta name="description" content="Æ®ÌìÎÄÑ§ÍøÌṩ×ß½øÐÞÏÉ×îÐÂÕ½ÚÃâ·ÑÔĶÁ£¬Ç뽫×ß½øÐÞÏÉÕ½ÚĿ¼¼ÓÈëÊղط½±ãÏ´ÎÔĶÁ,Æ®ÌìÎÄѧС˵ÔĶÁÍø¾¡Á¦ÔÚµÚһʱ¼ä¸üÐÂС˵×ß½øÐÞÏÉ£¬Èç·¢ÏÖδ¼°Ê±¸üУ¬ÇëÁªÏµÎÒÃÇ¡£" />
<meta name="copyright" content="×ß½øÐÞÏɰæÈ¨ÊôÓÚ×÷ÕßÎáµÀ³¤²»¹Â" />
<meta name="author" content="ÎáµÀ³¤²»¹Â" />
<link rel="stylesheet" href="/scripts/read/list.css" type="text/css" media="all" />
<script type="text/javascript">
Я также попытался загрузить как файл следующим образом:
import Network.HTTP
openURL :: String -> IO String
openURL = (>>= getResponseBody) . simpleHTTP . getRequest
downloading :: String -> IO ()
downloading = (>>= writeFile fileName) . openURL
Но после загрузки файла это похоже на фотографию:
Если я загружаю страницу с помощью python (например, с помощью urllib), символы отображаются нормально. Кроме того, если я пишу китайский html и разбираю его, то, похоже, нет проблем. Таким образом, кажется, что проблема находится на веб-сайте. Тем не менее, я не вижу разницы между персонажами сайта и теми, что я пишу.
Любая помощь по этой причине хорошо оценена.
P.S.
Код python выглядит следующим образом:
import urllib
urllib.urlretrieve('http://www.piaotian.net/html/7/7430/', theFic)
theFic = file_path
И файл все в порядке и хорошо.