三个学生吧 关注:3贴子:241

回复:暑假8月——python学习记录贴

取消只看楼主收藏回复

也就是说,wsgi接口也需要自己定义,一般传入两个参数,environ, start_response,environ:一个包含所有HTTP请求信息的dict对象;start_response:一个发送HTTP响应的函数。这两个参数我们无法提供,必须由专门支持wsgi接口的服务器提供
start_response('200 OK', [('Content-Type', 'text/html')]) 这个是返回的响应头
return '<h1>Hello, web!</h1>' 这个是返回的body


21楼2016-08-28 11:01
回复
    4.使用web框架
    因为WSGI提供的接口虽然比HTTP接口高级了不少,但和Web App的处理逻辑比,还是比较低级,我们需要在WSGI接口之上能进一步抽象,让我们专注于用一个函数处理一个URL,至于URL到函数的映射,就交给Web框架来做。由于用Python开发一个Web框架十分容易,所以Python有上百个开源的Web框架。这里我们先不讨论各种Web框架的优缺点,直接选择一个比较流行的Web框架——Flask来使用。
    Flask通过Python的装饰器在内部自动地把URL和函数给关联起来


    22楼2016-08-28 11:10
    回复
      2025-06-26 05:48:37
      广告


      23楼2016-08-28 11:10
      回复
        第二十章 协程 # 作为了解
        Python对协程的支持还非常有限,用在generator中的yield可以一定程度上实现协程。虽然支持不完全,但已经可以发挥相当大的威力了。


        25楼2016-08-28 11:20
        收起回复
          使用gevent,可以获得极高的并发性能,但gevent只能在Unix/Linux下运行,在Windows下不保证正常安装和运行。
          由于gevent是基于IO切换的协程,所以最神奇的是,我们编写的Web App代码,不需要引入gevent的包,也不需要改任何代码,仅仅在部署的时候,用一个支持gevent的WSGI服务器,立刻就获得了数倍的性能提升。具体部署方式可以参考后续“实战”-“部署Web App”一节。


          26楼2016-08-28 11:23
          回复
            希望爬到廖老师的所有教程,脚本目前已经可以爬到所有教程的网址,但是在抓取内容上因为编码等问题,出现了很多小问题,下午再去看看别人的代码改改


            27楼2016-08-29 09:19
            回复
              可以用htmltopdf这个库


              来自iPhone客户端30楼2016-09-04 18:39
              回复
                github 一些有趣的小项目


                来自iPhone客户端31楼2016-09-04 18:54
                回复
                  2025-06-26 05:42:37
                  广告
                  图形化爬虫框架:https://github.com/scrapinghub/portia


                  来自iPhone客户端32楼2016-09-04 18:58
                  回复
                    xpath可以说基本原理和beautisoup差不多...
                    语法是这样的...
                    在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。XML 文档是被作为节点树来对待的。树的根被称为文档节点或者根节点。
                    nodename 选取此节点的所有子节点。
                    / 从根节点选取。
                    // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
                    . 选取当前节点。
                    .. 选取当前节点的父节点。
                    @ 选取属性。
                    | 通过在路径表达式中使用“|”运算符,您可以选取若干个路径。
                    谓语用来查找某个特定的节点或者包含某个指定的值的节点。
                    谓语被嵌在方括号中。 比如 /bookstore/book[1][@price = 1]/aaa
                    总结一下,基本上用得到的就是//寻找全部元素 /一层一层定位下去 用谓语来删去不用的东西 常见的谓语有
                    俩个 [1]是指第几个 [@lang = 'sss']是寻找属性
                    用在Python里面也很简单
                    import lxml
                    a = etree.HTML(html1)
                    b = a.xpath(u"表达式内容...")
                    提取文档内容
                    b = b.text
                    回头试试去


                    35楼2016-10-04 18:49
                    回复
                      又更新了邮件模块...感觉更完善了,不过本来是要托管在openshit上面运行的,现在有点问题,我们等到7天上完以后再次更新吧!


                      38楼2016-10-07 20:31
                      回复