python网页抓取之英汉字典

  linux的字典本人实在用起来不舒服(stardict挺不错的,但是界面好看些,功能简单易用就好了)

,在线翻译又得打开庞大的浏览器....就打算自己写个,但是时间有限,为了简单,

还是用python抓取网页来的快些。本人用的必应字典。

http://cn.bing.com/dict/?mkt=zh-CN&setlang=ZH

获取某个单词解释url是:

http://cn.bing.com/dict/search?q=word&go=&qs=bs&form=CM&mkt=zh-CN&setlang=ZH

其中的红色word即是要翻译“word”单词。

代码如下dic.py:python使用的是2.7.5版本

 1 #!/usr/bin/python                 
 2 import urllib2,sys
 3 from HTMLParser import HTMLParser
 4 from htmlentitydefs import name2codepoint
 5 
 6 class MyHTMLParser(HTMLParser): #解析html
 7     def  __init__(self):
 8         HTMLParser.__init__(self)
 9         self.t=False
10         self.trans=[]
11         self.pr=False
12     def handle_starttag(self, tag, attrs):
13         if tag=='div':
14             for attr in attrs:
15                 if attr==('class','hd_prUS') or \
16                  attr==('class','hd_pr'):
17                     self.pr=True
18         if tag=='span':                       
19             for attr in attrs:
20                 if attr==('class','def'):
21                     self.t=True
22     def handle_data(self, data):
23         if self.t:
24             self.trans.append(data)
25             self.t=False
26         if self.pr:
27             print data
28             self.pr=False
29     def getTrans(self):
30         return self.trans
31 class trans:
32     _URL='http://cn.bing.com/dict/search'
33     def __init__(self):
34         self.url=trans._URL+"?q=%s&go=&qs=bs&form=CM&mkt=zh-CN&setlang=ZH"
35         self.html=None
36     def getHtml(self,word):  #获取单词翻译的网页
37         self.url=self.url %word
38         print word," :"
39         req = urllib2.Request(self.url)
40         fd=urllib2.urlopen(req)
41         self.html=fd.read()
42         self.html=unicode(self.html,'utf-8')
43         fd.close()
44     
45     def parseHtml(self):  #解析调用
46         parser = MyHTMLParser()
47         self.html=parser.unescape(self.html)
48         parser.feed(self.html)
49         s=parser.getTrans()
50         t=1
51         for i in s:
52             print t,'. ',i
53             t+=1
54 
55 if __name__=='__main__':
56         t=trans()
57         t.getHtml(sys.argv[1])
58         t.parseHtml()
59         

终端操作:

05:07@:~/workspace$ ./dic.py action                                                                                                                                                                                                  
action  :                                                                                                                                                                                                                            
美 [ˈækʃ(ə)n]                                                                                                                                                                                                                         
英 [ˈækʃ(ə)n]                                                                                                                                                                                                                         
1 .  行动;行为;诉讼;战斗                                                                                                                                                                                                                     
2 .  务必做                                                                                                                                                                                                                             
3 .  动作;操作;作用

终端用起来也不甚方便,有时间把代码搬进图形程序中.....pyQt还是kivy等图形库,

用过pyQt,抽时间看看吧。

本人的注释是写博客后来加上去的,可以直接删了,或者添加# -*- coding: utf-8 -*-

  对于html的解析另一个不错的模块库是BeautifulSoup,解析相当给力。但是需要自己安装

这个库。和上面代码功能一样,但是使用BeautifulSoup解析的。代码如下:

 1 #!/usr/bin/python                 
 2 import urllib2,sys
 3 from BeautifulSoup import BeautifulSoup
 4 class MyHTMLParser:
 5     def __init__(self):
 6         self.trans=[]
 7         self.us=None
 8         self.uk=None
 9         self.define=True
10     def feed(self,html):
11         parsed_html=BeautifulSoup(html)
12         self.us=parsed_html.find('div',{'class':'hd_prUS'}).text
13         self.uk=parsed_html.find('div',{'class':'hd_pr'}).text
14         self.us=self.us.replace(' ',' ')
15         self.uk=self.uk.replace(' ',' ')
16         print self.us,',',self.uk       
17         self.define=parsed_html.findAll('span',{'class':'def'})
18         for t in self.define:
19             self.trans.append(t.text)
20     def getTrans(self):
21         return self.trans
22 class trans:
23     _URL='http://cn.bing.com/dict/search'
24     def __init__(self):
25         self.url=trans._URL+"?q=%s&go=&qs=bs&form=CM&mkt=zh-CN&setlang=ZH"
26         self.html=None
27     def getHtml(self,word):  
28         self.url=self.url %word
29         print word," :"
30         req = urllib2.Request(self.url)
31         fd=urllib2.urlopen(req)
32         self.html=fd.read()
33         fd.close()
34     
35     def parseHtml(self):  
36         parser = MyHTMLParser()
37         parser.feed(self.html)
38         s=parser.getTrans()
39         t=1
40         for i in s:
41             print t,'. ',i
42             t+=1
43 
44 if __name__=='__main__':
45         t=trans()
46         t.getHtml(sys.argv[1])
47         t.parseHtml()
View Code

 

转载于:https://www.cnblogs.com/wuchaofan/p/3394124.html

Python网页抓取教程 ​— Python网页抓取教程:循序渐进 — 抓取网页入门其实挺简单的。在之前的文章中我们介绍了怎么用C#和JAVA两种方法来抓取网页,这一期给大家介绍一种更容易,也是使用最广泛的一种抓取方法,那就是Python。 说起Python,大家应该并不陌生,它是目前入门最简单的一种方法了,因为它是一种面向对象的语言。Python的类和对象比任何其他语言都更容易使用。此外,Python存在许多库,因而在Python中构建用于网页抓取的工具轻而易举。 在这篇Python网络抓取教程中,我们将分步骤讲解如何利.. 阅读详情

相关推荐

Pandas入门教程(二十二):股票数据分析实战——yfinance 获取数据、技术指标与收益率分析

把 Pandas 用在真实场景,才能体会它的价值。本文以茅台股票为例,用 yfinance 获取历史行情,完成缺失值处理与列筛选,绘制收盘价曲线,计算 SMA 移动平均线与 RSI 相对强弱指数,并通过日收益率、累计收益率和波动率完成完整的量化分析流程。

Smell_of_earth的博客 344

Vue进阶(二十): 请求方式详解

1.resource请求 cnpm install vue-resource --save import VueResource from 'vue-resource' Vue.use(VueResource) this.$http.get("") 2.axios 请求 cnpm install axios --save axios.defaults.baseURL = "根地址" //vu...

IT全栈 华强工作室 4255

VS Code 配置 LaTeX 写作环境完全指南

本文详细介绍了如何在 VS Code 中配置 LaTeX 写作环境,涵盖了从安装必备组件到高级功能的全面指南。首先,用户需要安装 LaTeX 发行版(如 TeX Live 或 MiKTeX)和 VS Code 插件(如 LaTeX Workshop)。接着,通过修改 settings.json 和 keybindings.json 文件,用户可以自定义编译、查看快捷键等基础配置。文章还提供了高效写作技巧,如使用代码片段和多文件项目管理,并介绍了高级功能如反向同步、公式预览和参考文献管理。此外,针对常见问题(

weixin_70043030的博客 1984

python字典的提取

对于字典中的值的提取 1.简单的字典提取 >>>dict={"name":"hxy",'age':28} >>>dict['name'] 'hxy' >>>dict['age'] 28 2.字典内的字典值的提取 >>>dict={"name":[{"name1":"hxy","name2...

weixin_33755649的博客 2212

linux CentOS7安装VCS、Verdi、SCL

1.Linux下所需安装文件 链接:https://pan.baidu.com/s/1E_l4ARFYEnp57jlX95Bpog 提取码:ggdz ​ synopsysinstaller_v5.0 ​ scl_v2018.06 ​ vcs_mx_vO-2018.09-SP2 ​ vcs_vO-2018.09-SP2 ​ verdi-2018.9 2.Windows破解文件 ​ scl_keygen_2030 3.安装installer 打开终端,进入synopsysinstaller_

loveyelong的博客 4620

AIDD-人工智能药物设计-构建基于机器学习方法的在线预测平台高准确预测药物诱导骨毒性

在此基础上,提取多种药物分子特征,包括分子指纹(如MACCS、Morgan、RDKit、TopologicalTorsion、AtomPairs与Descriptors)及分子图谱,通过Transformer编码器与神经网络进行机器学习模型训练。最后,将训练好的模型部署为在线Web服务器(BoneToxPD),供用户快速预测药物的骨毒性。本研究不仅在骨毒性预测的准确性方面取得了突破,还在模型解释性方面提供了新的视角,通过注意力机制精准识别出影响骨毒性的关键化学基团,推动药物研发领域更安全、更高效的发展。

itwangyang520的博客 1081

python网页抓取之自己动手写字典

由于上篇的是在命令行中获取翻译的,方便性肯定一般啦。最多算个 好玩些罢了。周末没事,就把上篇的代码搬进基于pyqt4中的图形软件中了。 上篇代码当作模块使用不方便,做了更改,另外,两点注意: 1.qt支持html的标签对于字符串的修饰。 比如:<font color="red">string</font> 显示的是红色的string。 2.存储...

Sight2012的博客 227

当传统CFD遇上AI:PINN如何帮我们省下90%的仿真计算时间?

本文探讨了物理信息神经网络(PINN)在计算流体力学(CFD)中的应用,如何通过无网格方法节省90%的仿真计算时间。PINN将物理定律编码到神经网络中,显著减少传统CFD中的网格生成和计算时间,同时保持高精度。文章还对比了PINN与传统方法的性能,并讨论了其独特优势和当前局限。

weixin_32678995的博客 321

python电子英汉词典显示_python网页抓取之英汉字典

linux的字典本人实在用起来不舒服(stardict挺不错的,但是界面好看些,功能简单易用就好了),在线翻译又得打开庞大的浏览器....就打算自己写个,但是时间有限,为了简单,还是用python抓取网页来的快些。本人用的必应字典。获取某个单词解释url是:http://cn.bing.com/dict/search?q=word&go=&qs=bs&form=CM&mkt=zh-CN&setla...

weixin_39667626的博客 290

Delta并联机械手-Codesys实现以及正解逆解研究

由于Codesys的Robotics模块有Delta并联机械手的运动模型,因此借助Codesys的机械手运动模型,研究自己的正解逆解算法。

weixin_42386991的博客 5566

GD32 TIMER0 PWM输出死活没波形?别忘了这个关键配置(附完整代码)

本文详细解析了GD32 TIMER0 PWM输出无波形的常见问题,特别强调了高级定时器特有的主输出使能配置。通过完整的代码示例和调试技巧,帮助开发者快速解决PWM输出问题,适用于无刷电机控制等嵌入式应用场景。

weixin_30906185的博客 397

python网页抓取之英汉字典+自学习能力

上篇每次翻译一个单词都要联网抓取,重复翻译也要抓取,感觉不太好。晚上突然想到了一个不错的办法, 说白了就是查询数据库如果有这个单词就拿出来,没有就联网抓取显示出来并保存进 数据库。时间长了几乎就不用联网了,也就是离线了! 本人使用的数据库是sqlite,小巧简单。当然用其他的也可以了。还是看代码吧。 代码增加的不多,有些可以优化先不管啦。用BeautifulSoup解...

Sight2012的博客 205

Test软件:Keysight二次开发_(1).Keysight软件开发概述

VISA(Virtual Instrument Software Architecture)库是Keysight提供的一种标准化的仪器控制接口,支持多种编程语言和开发环境。仪器通信:通过GPIB、USB、以太网等接口与仪器进行通信。数据采集:从仪器中获取测量数据。命令发送:向仪器发送控制命令。错误处理:处理通信过程中可能出现的错误。测试自动化是指通过编写脚本或程序来自动执行测试任务,从而提高测试效率和减少人为错误。Keysight的测试设备和仪器支持多种编程语言和开发环境,使得测试自动化变得相对容易。

2401_87715305的博客 1359

python电子英汉词典显示_python网页抓取之英汉字典+自学习能力

上篇每次翻译一个单词都要联网抓取,重复翻译也要抓取,感觉不太好。晚上突然想到了一个不错的办法,说白了就是查询数据库如果有这个单词就拿出来,没有就联网抓取显示出来并保存进数据库。时间长了几乎就不用联网了,也就是离线了!本人使用的数据库是sqlite,小巧简单。当然用其他的也可以了。还是看代码吧。代码增加的不多,有些可以优化先不管啦。用BeautifulSoup解析html更容易写,可以看上篇文章。d...

weixin_39614528的博客 177

别再只当调包侠了!YOLO检测头到损失函数全链路拆解,看完才算真懂

YOLO的精妙不在于某个单一创新,而在于各模块围绕“实时精准检测”这一目标的协同设计。Backbone追求高效特征压缩,Neck保障多尺度信息流通,Head解耦任务冲突,Loss动态引导优化方向。只有理解这套内在逻辑,才能跳出“调包-试错”的低效循环,在面对新场景、新问题时做出有理有据的改进决策。技术深度决定职业天花板。下次再调YOLO时,不妨先问自己:我改的这个参数,到底影响了系统中的哪一环?参考资料。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 186

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

python有道字典_Python基于有道实现英汉字典功能

本文实例讲述了Python基于有道实现英汉字典功能的方法。分享给大家供大家参考。具体如下:import re,urllibaa="http://dict.youdao.com/search?tab=chn&keyfrom=dict.top&q="print ("input q! to exit ")while 1:word=raw_input(">>>")if word=="q!":exit()e...

weixin_39737233的博客 64

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

下载英汉字典

python3 终端下英汉词典 BeautifulSoup+网络爬虫... 1. [代码]python3,词典,BeautifulSoup,网络爬虫    跳至[1][全屏预览]#!/usr/bin/env python3 from bs4 import BeautifulSoup import tornado.httpclient cli=tornado.httpclient.HTTPC

heshenhan的专栏 558

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Python——网络爬虫抓取有道词典

今天我们来谈谈python的网络爬虫抓取有道词典 抓取有道词典之前,我们需要对有道词典的网页进行分析,在这里我们需要得到有道网页的请求网址,这里的状态码显示200即为表示正常访问。 url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule' 在请求头的地方我们可以看到'User...

l769440473的博客 2622

python 自定义词典------英汉翻译

python 自定义词典, 浏览器发出的请求, 拼接 url, 获取响应得到的文本信息。 xpath 匹配即可。 其他方式匹配也可 bs4, re, Selector 都是可以的。 这里面有很多的接口可以调用, 比如说, 有道词典, 百度翻译,金山词霸,谷歌翻译 等等都是可以的。 本小菜鸡采用的是 金山词霸------demo 如下: # !/usr/bin/env Python3 # -...

chang995196962的博客 1683

python软件界面翻译_python英汉词典,在线翻译器,带GUI界面下载

使用请求模块获得的职位信息有道词典网页,BeautifulSoup获得所需的内容,并生成gui界面通过tkinter模块。2. Python实现翻译工具git源代码地址代码如下:# !\/bin\/env python -编码:utf -\u20261,使用python的GUI图形库tkinter创建窗口创建窗口的翻译软件()创建按钮()创建标签()创建输入框()2。通过履带抓住有道翻译,文章\u...

weixin_35029593的博客 782

python提取字典的值_如何使用python语言中的方法获取字典中的值

在python语言中,字典是一种基本数据类型,包含了key和value两部分。如果想要获取字典中的key和value,可以直接调用对应的方法,循环遍历获取。下面利用几个实例说明如何获取字典中的属性值,操作如下:工具/原料python截图工具方法/步骤1第一步,打开python语言命令输入窗口,定义一个字典变量di,有id、name和type,如下图所示:2第二步,使用for...in语句遍历循环字...

weixin_39991935的博客 3万+

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 422

从一段视频到可漫游的 4D 有声场景:思路拆解与最小复现手记

只需一段手机视频,你就能生成可"走进去"的 4D 有声场景:转头时狗叫声方向随之变化,走近时声音更清晰。本文拆解 Video-to-4DAVScene 的核心思路,手把手带你用几十行 Python 搭出最小管线,把视频中的运动物体变成带空间位置的声源,并附上三个真实踩坑的排障经验,代码可直接跑。🎧

helloagent的博客 239

【每天一个 Python 小案例30】Python 基础知识综合小项目:我的工具盒

作为系列收官,本篇把前 29 篇的知识点合成一个能直接用的命令行工具"我的工具盒":计算器(用 ast 解析表达式,不碰 eval)、单位换算与温度转换(一张换算表 + 特例分支)、记账与分类统计(Decimal + JSON 持久化)、以及用"字典当命令表"把菜单和业务逻辑解耦的主循环。文中对比了 eval 的安全隐患与 ast 白名单的做法,解释了 lambda 闭包在字典里的写法与晚绑定陷阱,并在最后给出整个系列的知识地图,把变量、数据结构、控制流、函数、类、异常、文件、标准库八块内容对应到具体篇目。

xinjiyaya的博客 427
上一篇: python抓取网页之下载音乐
下一篇: python网页抓取之英汉字典+自学习能力
Sight2012
博客等级 码龄12年 1粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值