`
airu
  • 浏览: 270801 次
  • 性别: Icon_minigender_1
  • 来自: 云南
社区版块
存档分类
最新评论

python与web

 
阅读更多

如果说java是建造高楼的砖石,那么python就是一支素质良好的施工队。

有一天,我苦于在ubuntu下没有找到词典应用,不得不打开网页,诸如有道词典这样的,然后输入单词。

凑合可用。但是网页内容太多,而且切换不易。于是决定用python解析这些网页,提取翻译。

首先,我们需要一个类似httpclient的工具,相当于浏览器的交流工具,然后还要一个html解析器。

当然我们不许要自己动手建造,只需要import  httplib, import urllib,import sgmllib 即可。

好吧,来看我们是如何从有道词典抓数据的。

#!/usr/bin/evn python
# -*- coding: utf-8 -*-
import httplib
import urllib
import sys
from sgmllib import SGMLParser
class GetTrans(SGMLParser):
    def reset(self):
        self.text = []
        self.flag = False
        self.getdata = False
        self.layer = 0
        SGMLParser.reset(self)
    def start_div(self, attrs):
        if self.flag == True:
            self.layer += 1
            return
        for k, v in attrs:
            if  (k == 'id' and v =='phrsListTab') or (k == 'class' and v == 'phonetic'):
                self.flag = True
                return
    def end_div(self):
        if self.layer == 0:
            self.flag = False
        if self.flag == True:
            self.layer -= 1

    def start_ul(self, attrs):
        if self.flag == False:
            return
        self.getdata = True
    def end_ul(self):
        if self.getdata:
            self.getdata = False
    def start_span(self,attrs):
        if self.flag == False:
            return
        self.getdata = True
    def end_span(self):
        if self.getdata:
            self.getdata = False

    def handle_data(self, text):
        if self.getdata:
            self.text.append(text)
    def printText(self):
        for i in self.text:
        print i
def sendhttp(key):
    data = urllib.urlencode({'q':key,'le':'eng','from':'dict.index'})
    headers = {"Content-type":"application/x-www-form-urlencoded","Accept":"text/plain"}
    conn = httplib.HTTPConnection("dict.youdao.com");
    conn.request('POST', '/search', data, headers)
    httpres = conn.getresponse()
    t = GetTrans()
    t.feed(httpres.read())
    t.printText()
    conn.close()

if __name__ == '__main__':
    while True:
        print "please input word:\n"
        word = raw_input()
        sendhttp(word)
        if word == 'quit':
            break
    print 'bye'

 代码很少,最多的是如何解析html,这里使用的解析类似xml解析中的节点方法,定义遇到html标签时的处理方法,例如,如果要处理 <body>那么,定义这样的函数 start_body 当然当处理</body>时,需要 end_body这样的函数。我们只需定义关心的标签。这里需要注意的是标签的套嵌,我们使用layer来判断。

接下来就是模拟一个http的请求,构造一个url请求,然后返回结果。

httplib 还有更强大的httplib2。有心的同学可以去研究。这个简易词典已经能工作了。你可以根据自己的需求修改代码。快来动手吧。

please input word:

supposedly
supposedly
英
                                    
[sə'pəʊzɪdlɪ]
美
                                    
[sə'pozɪdli]

     
adv. 可能;按照推测;恐怕

 

分享到:
评论

相关推荐

    基于Python与Web全栈技术的学习源码设计

    该项目是一个全面的Python与Web全栈技术学习源码,包含856个文件,其中涵盖211个XML配置文件、205个Python源代码文件、116个HTML文件、91个JPEG图片文件、65个Python编译文件、47个IDE项目文件、46个Git忽略文件、16...

    基于Python与Web技术集成的疾病登录系统设计源码

    本项目是一款基于Python与Web技术的疾病登录系统设计源码,共包含5239个文件,涵盖1669个SVG文件、946个Python编译文件、932个Python源文件、804个数据文件、36个文本文件以及30个其他类型文件。该系统专注于疾病...

    基于Python与Web技术的全栈投票系统设计源码

    该项目是一款采用Python与Web技术的全栈投票系统源码,集成了83个JavaScript文件、20个SVG文件、15个CSS文件、13个Python文件、6个文本文件、3个字体文件、3个HTML文件、2个Markdown文件、1个SQLite数据库文件及其他...

    精通Python与Web开发.docx

    Python是一种强大且灵活的编程语言,特别适合于Web开发,因为它的语法简洁,学习曲线平缓,且拥有丰富的网络库和框架。Python的基础语法和数据类型是初学者必须掌握的关键内容,包括数字、字符串、列表、元组和字典...

    基于Python与Web技术的一站式短视频拼接软件设计源码

    该源码是一款使用Python与Web技术开发的一站式短视频拼接软件,集成了78个Python脚本、21个PNG图片、9个Markdown文档等共计174个文件,涵盖了HTML, CSS, TypeScript等多种语言。软件功能强大,支持无依赖运行,一键...

    Python搭建的Web服务

    本篇文章将深入探讨Python与Web.py的结合以及如何在Python3环境下配置MySQL5数据库,帮助你掌握这一技能。 首先,让我们了解Python在Web开发中的角色。Python以其清晰的语法和丰富的库而著名,为开发Web应用提供了...

    Python-WebSSH一个基于Web的ssh客户端

    7. **部署与集成**: 可以将Python-WebSSH部署在各种Web服务器上,如Apache或Nginx,并可以与其他系统(如监控、自动化工具)集成,以实现更复杂的运维需求。 在`huashengdun-webssh-49a64b7`这个文件夹中,包含了...

    基于Python与Web技术的uml大作业之评教系统设计源码

    该大作业项目是一款基于Python和Web技术的评教系统设计源码,由20个文件组成,包括6个Python源代码文件、3个HTML文件、3个CSS样式文件、2个XML配置文件、1个Markdown文件、1个Java文件、1个YAML文件、1个WSGI文件、1...

    python+web开发框架工具包

    本资源包“python+web开发框架工具包”专为初学者设计,旨在帮助新手快速入门Python与Web开发,积累基础知识。 首先,我们要了解Python在Web开发中的角色。Python是一种解释型、面向对象的高级编程语言,它提供了...

    基于Python的Web技术

    基于 Python 的 Web 技术 Python 是一种广泛应用于 Web 开发的高级语言,具有简洁易学、开发效率高、可读性强等优点。今天,我们将对基于 Python 的 Web 技术进行详细的介绍。 什么是 LAMP LAMP 是一种流行的 Web...

    基于Python与Web技术的py12306购票助手设计源码

    该项目是一款以Python为核心,结合Web技术的12306购票助手设计源码,共计79个文件,涵盖34个Python脚本、7个JavaScript脚本、4个Git忽略文件、4个示例文件、4个字体文件、4个矢量图形文件、3个文本文件、3个CSS样式...

    Python基础语法 Python数据类型与结构 Python函数与模块 面向对象编程在Python中的应用 Python异常处

    Python与Web开发:Flask框架 Python与Web开发:Django框架 Python数据分析:Pandas库 Python数据可视化:Matplotlib与Seaborn Python机器学习基础:Scikit-Learn Python深度学习入门:TensorFlow与Keras Python自动...

    python web开发.pdf

    **Python Web开发概述** Python Web开发是利用Python编程语言构建Web应用程序的过程,它结合了Python的强大功能和灵活性,以及Web开发的各种框架和技术。本课程针对的是电子商务等专业的学生,旨在通过学习,让学生...

    Python Web开发实战_python_web_

    书中会先介绍Python的基础语法,如变量、数据类型、控制结构(条件语句、循环)、函数、类与对象等,这些都是Web开发的基础。 2. **Web框架**:Python有许多优秀的Web框架,如Django、Flask、Tornado等。书中的项目...

    Python Web开发实战_python工程_python_web_

    2. **WSGI(Web Server Gateway Interface)**:Python标准的Web服务器接口,定义了Web服务器如何与Web应用程序交互。 3. **模板引擎**:如Jinja2,用于生成HTML页面,允许开发者将动态数据嵌入到静态模板中。 4. **...

    最新Python-web开发视频教程从入门到精通.pdf

    想成为 Python web 开发工程师?想进入 Python 行业拿高薪?但还没入行? 别急,先看看 Python web 开发视频教 程。 千锋 Python 基础教程:http://pan.baidu.com/s/1qYTZiNE Python 课程教学高手晋级视频总目录: ...

    Python大作业基于python的web日志分析工具项目源码+注释.zip

    Python大作业基于python的web日志分析工具项目源码+注释.zipPython大作业基于python的web日志分析工具项目源码+注释.zipPython大作业基于python的web日志分析工具项目源码+注释.zipPython大作业基于python的web日志...

    python-web.py包

    在实际开发中,你可能需要了解Web.py如何处理HTTP请求和响应,以及如何与其他Python库(如Flask、Django等其他Web框架)进行对比。同时,学习如何利用Web.py构建RESTful API、处理表单数据、实现会话管理等也是重要...

    Learning Python Web Penetration Testing 1st

    使用Python和Requests库与Web应用程序交互 创建一个基本的Web应用程序爬虫并使其递归 开发一个强力工具来发现和枚举文件和目录等资源 探索Web应用程序中常用的不同身份验证方法 使用SQL注入从数据库枚举表名 了解Web...

    python web开发实录源代码

    Python Web开发是现代互联网应用构建的重要技术之一,它利用Python语言的强大功能和丰富的库资源,结合Web框架,如Django、Flask等,快速构建高效、可扩展的Web应用程序。"Python Web开发实录源代码"是针对这一主题...

Global site tag (gtag.js) - Google Analytics