如果说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自动化基础试题(含答案)全文共3页,当前为第1页。python与web自动化基础试题(含答案)全文共3页,当前为第1页。Python与web自动化综合试题 python与web自动化基础试题(含答案)全文共3页,当前为第1页。 ...
精通Python与Web开发全文共4页,当前为第1页。精通Python与Web开发全文共4页,当前为第1页。精通Python与Web开发 精通Python与Web开发全文共4页,当前为第1页。 精通Python与Web开发全文共4页,当前为第1页。 Python...
python web开发.pdfpython web开发.pdfpython web开发.pdfpython web开发.pdfpython web开发.pdfpython web开发.pdfpython web开发.pdfpython web开发.pdf
Python大作业基于python的web日志分析工具项目源码+注释.zipPython大作业基于python的web日志分析工具项目源码+注释.zipPython大作业基于python的web日志分析工具项目源码+注释.zipPython大作业基于python的web日志...
使用Python和Requests库与Web应用程序交互 创建一个基本的Web应用程序爬虫并使其递归 开发一个强力工具来发现和枚举文件和目录等资源 探索Web应用程序中常用的不同身份验证方法 使用SQL注入从数据库枚举表名 了解Web...
python web 案例 demo,python web 案例 demo,python web 案例 demo.
想成为 Python web 开发工程师?想进入 Python 行业拿高薪?但还没入行? 别急,先看看 Python web 开发视频教 程。 千锋 Python 基础教程:http://pan.baidu.com/s/1qYTZiNE Python 课程教学高手晋级视频总目录: ...
PythonWeb开发基础教程教学 ⼤纲 0 《 Python Web 开发基础教程》教学⼤纲 学 时: 66 代 码: 适⽤专业: 制 定: 审 核: 批 准: ⼀、课程的地位、性质和任务 Web 开发基础是普通⾼等学校计算机科学与技术专业的...
Python Django Web开发指南
pythonweb大作业,实现增删改查。分享pythonweb大作业,云认证平台登录,使用的是mongodb数据库。可查看运行教程 链接:https://blog.csdn.net/weixin_43960044/article/details/101012182
Python Web开发学习实录对应源代码
Python Web 框架,第 1 部分 使用 Django 和 Python 开发 Web 站点.doc
FlaskWeb开发:基于Python的Web应用开发实战
python-flask框架,实时监控本地系统的cpu、内存使用率,用psutil获得系统进程信息,flask web框架,ajax局部刷新获得数据,echarts图表显示,sqlalchemy连接mysql数据库,只要把数据库连接换成自己的就可以用了
bokeh:用 Python 进行交互式 web 绘图 ,您可以快速、轻松地创建交互式平面图,仪表盘和数据的应用程序。
Flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务。本文参考自Flask官方文档,大部分代码引用自官方文档
基于python3编写的web后台管理系统,基于layui采用Django框架实现完整的后台管理系统,包含菜单权限、机构权限、数据权限等,功能齐全。 基于python3编写的web后台管理系统,基于layui采用Django框架实现完整的...
Python Web开发实战 前端工程师必看书目
即时通讯:Python实现web版多人聊天室