码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 使用HXT和Haskell编写的程序


    以下是一个使用HXT和Haskell编写的下载器程序,用于下载内容。此程序使用了proxy的代码。

    -- 导入必要的库
    import Network.HTTP.Conduit
    import Network.HTTP.Types.Status
    import Network.HTTP.Types.Header
    import Data.Conduit
    import Data.Conduit.Network
    import Data.ByteString.Lazy
    import Data.Maybe
    import Control.Monad.Trans.Resource
    import Text.HTML.DOM
    import Text.XML.Cursor
    ​
    -- 获取服务器的IP地址
    getProxyIP = do
        response <- simpleHttp ""
        let ip = head . fromJust . lookup "ip" . responseHeaders $ response
        return ip
    ​
    -- 使用HXT下载网页内容
    downloadPage = do
        -- 获取服务器IP地址
        proxyIP <- getProxyIP
        -- 创建一个HTTP请求
        request <- parseRequest $ "http://www.wechat.com"
        -- 设置服务器
        let proxy = ProxyRequest proxyIP (fromIntegral . fromEnum $ requestMethod request)
        -- 使用HXT下载网页
        html <- runResourceT $ -> do
            response <- httpLbs proxy manager request
            case response of
                Left err -> fail $ show err
                Right r -> do
                    let body = responseBody r
                    -- 使用HXT解析HTML
                    let dom = parseLBS def body
                    -- 从DOM中提取所需的内容
                    let content = getElementText (getElementById "content" dom)
                    return content
    ​
    -- 主函数
    main = do
        -- 下载网页内容
        content <- downloadPage
        -- 打印下载的内容
        putStrLn content

    这个程序首先获取一个服务器的IP地址,然后使用HXT库下载内容。在解析HTML后,程序从DOM中提取所需的内容并将其打印出来。

  • 相关阅读:
    黑马程序员 学成在线项目 第1章 项目介绍&环境搭建v3.1
    如何利用 Seaborn 实现高级统计图表
    【python可视化】python编码规范、标准库与扩展库对象的导入与使用
    源码的角度分析Vue2数据双向绑定原理
    测试报告模板一
    自然语言处理实战10-文本处理过程与输入bert模型后的变化
    【Python】重磅!这本30w人都在看的Python数据分析畅销书更新了!
    二、【VUE-CLI】分析脚手架 render
    docker 记录下go用alpine作为基础镜像出现 no found的问题
    我的创作纪念日
  • 原文地址:https://blog.csdn.net/weixin_73725158/article/details/134047901
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号