python解析网页所有可点击_Python 解析网页
最近想在一些网站获取汉字的一些,简单的使用python做了一个小解析工具。
工具使用 SGMLParser解析htm网页,获取里面指定的一些内容。
代码中获取的是http://www.chazidian.com/r_zi_zd4e50/里面的内容。
现有另一个问题,www.chazidian.com下面可能有上万个类似的网页,我怎么能获取这上万个网页的地址呢?希望高手解答解答···
#-*- coding:utf-8 -*-
import urllib2
import codecs
class WordInfo:
def __init__(self):
self.id=''#字unicode
self.word=''#字
self.hzjg=''#汉字结构
self.zzf=''#造字法
self.wb86=''#五笔86
self.wb98=''#五笔98
self.wx=''#五行
self.unicode=''#unicode
self.sjhm=''#四角号码
self.cj=''#仓颉
self.gbk=''#GBK编码
self.gfhzbh=''#规范汉字编号
def print_info(self):
print u'字unicode:', self.id
print u'字:', self.word
print u'汉字结构:', self.hzjg
print u'造字法:', self.zzf
print u'五笔86:', self.wb86
print u'五笔98:', self.wb98
print u'五行:', self.wx
print u'unicode:', self.unicode
print u'四角号码:', self.sjhm
print u'仓颉:', self.cj
print u'GBK编码:', self.gbk
print u'规范汉字编号:', self.gfhzbh
def write_file(self, fpWord):
info = "%(word)s\t%(jt)s\t%(ft)s\t%(pinyin)s\t%(py)s\t%(zy)s\t%(yy)s\t%(bs)s\t%(bh)s\t%(bwbh)s\t%(stroke)s\t%(coding)s\t%(uni)s\t%(wb)s\t%(cj)s\t%(zm)s\t%(fc)s\r\n" \
% {
'word':self.word,
'jt':self.jt,
'ft':self.ft,
'pinyin':','.join(self.pinyin),
'py': ','.join(self.py),
'zy': ','.join(self.zy),
'yy': ','.join(self.yy),
'bs': self.bs,
'bh': str(self.bh),
'bwbh': str(self.bwbh),
'stroke': self.stroke,
'coding': self.coding,
'uni': self.uni,
'wb': self.wb,
'cj': self.cj,
'zm': self.zm,
'fc': self.fc
}
fpWord.write(info)
from sgmllib import SGMLParser
class ZdicParser(SGMLParser):
def __init__(self):
SGMLParser.__init__(self)
self.word_info = WordInfo()
#标记
self.word = 0#字
self.li_info = 0
self.binfo = 0
def start_div(self, attrs):
if len(attrs) == 0:
return
if attrs[0] == ('class', 'zititle'):
self.word = 1
elif attrs[0] == ('class', 'li_info'):
self.li_info = 1
def end_div(self):
self.word = 0
self.li_info = 0
def start_ul(self, attrs):
if len(attrs) == 0:
return
if attrs[0] == ('class', 'binfo'):
self.binfo = 1
def end_ul(self):
self.binfo = 0
def handle_data(self, data):
try:
data = data.decode('utf8')
except:
data = data.decode('gbk')
if data.find(u'对不起,资源或文件无法找到') >= 0:
return
data.strip()
if self.word:
self.word_info.word = data
self.word_info.id = ord(data)
elif self.li_info:
index = data.find(u'汉字结构:')
if index >= 0:
self.word_info.hzjg = data[index+len(u'汉字结构:'):]
index = data.find(u'造字法:')
if index >= 0:
self.word_info.zzf = data[index+len(u'造字法:'):]
elif self.binfo:
print data
index = data.find(u'五笔86:')
if index >= 0:
self.word_info.wb86 = data[index+len(u'五笔86:'):]
index = data.find(u'五笔98:')
if index >= 0:
self.word_info.wb98 = data[index+len(u'五笔98:'):]
index = data.find(u'五行:')
if index >= 0:
self.word_info.wx = data[index+len(u'五行:'):]
index = data.find(u'UniCode:')
if index >= 0:
self.word_info.unicode = data[index+len(u'UniCode:'):]
index = data.find(u'四角号码:')
if index >= 0:
self.word_info.sjhm = data[index+len(u'四角号码:'):]
index = data.find(u'仓颉:')
if index >= 0:
self.word_info.cj = data[index+len(u'仓颉:'):]
index = data.find(u'GBK编码:')
if index >= 0:
self.word_info.gbk = data[index+len(u'GBK编码:'):]
index = data.find(u'规范汉字编号:')
if index >= 0:
self.word_info.gfhzbh = data[index+len(u'规范汉字编号:'):]
if __name__ == '__main__':
url_fp = urllib2.urlopen(r'http://www.chazidian.com/r_zi_zd4e50/',timeout=10)
chazidian = url_fp.read()
url_fp.close()
zdicParser = ZdicParser()
zdicParser.feed(chazidian)
zdicParser.word_info.print_info()
python解析网页所有可点击_Python 解析网页相关推荐
- python读取oracle数据转换成json文件_python 读取网页json数据库中
数据挖掘敲门砖--Python爬虫入门 Python爬虫.jpg WHAT 数据挖掘是一门综合的技术,随着Ai的兴起,在国内的需求日渐增大. 数据挖掘的职业方向通常有三个,顺便概要地提一下所需的技能( ...
- python之33个关键字详解_Python解析、提取url关键字的实例详解
解析url用的类库: python2版本: from urlparse import urlparse import urllib python3版本: from urllib.parse impor ...
- python解析xml数据_数据开发_Python解析XML文件
解析XML文件 XML是可扩展标记语言,主要用于传输和存储数据 解析方式 使用lxml解析 主要注意: text tag attrib 使用方式 有 get() 以及迭代的情况 数据示例 a31 代码 ...
- python 实现对地图的点击_python使用folium库绘制地图点击框
python使用folium 库生成地图网页的具体代码,供大家参考,具体内容如下 folium 官网 import folium import pandas as pd def mark_map(da ...
- python怎么模拟鼠标移动点击_Python模拟鼠标点击——如何正确的肝阴阳师
本来嘛,说好了要写Selenium自动化搜电影的笔记的,然后正好今天上课无聊玩阴阳师开了个SSR,发现还有600体!准备怒刷之,但是又肝不动了.打算尝试用Python写个脚本来代替我自动点击(PC端, ...
- python控制鼠标移动并点击_python模拟鼠标点击和键盘输入的操作
所有代码都是网上百度出来的,通过个人实践找到适合自己的. 采用的python 库是pymouse.pykeyboard 安装时直接pip安装的,pip install PyUserInput 安装不成 ...
- Python一亿以内的素数个数_Python+django网页设计入门(17):模板语法及应用
前导课程: Python+django网页设计入门(16):优化设计复用分页代码 Python+django网页设计入门(15):公用模板设计与使用 Python+django网页设计入门(14):使 ...
- Python一亿以内的素数个数_Python+django网页设计入门(18):自定义模板过滤器
前导课程: Python+django网页设计入门(17):模板语法及应用 Python+django网页设计入门(16):优化设计复用分页代码 Python+django网页设计入门(15):公用模 ...
- python 实现对地图的点击_python实现Pyecharts实现动态地图(Map、Geo)
一些经常画图的开发人员大概都用过echart,不过小白用Python比较多,学习了python下的Pyecharts,发现这个包真的很强大.下面是小白对动态地图的实践案例: 假如有这样一组数据,全国每 ...
最新文章
- 走近TCP/IP协议
- 每日一学|数据中心spine leaf网络架构
- xgboost分类器直接调用验证集的评估结果
- js中推断浏览器类型
- 牛客假日团队赛5J	护城河 bzoj 1670: [Usaco2006 Oct]Building the Moat护城河的挖掘 (凸包的周长)...
- linux 进入一个中文乱码的目录的方法
- java连接rabbitmq_RabbitMQ教程(工作模式篇)
- java css文件预处理_浅谈 CSS 预处理器: 为什么要使用预处理器?
- Atitit. 项目文档目录大纲 总集合 v2
- Play framework request code 413
- 【C语言】18-变量类型
- Android WebView开发(三):WebView性能优化
- 设备划分冲突域和广播域
- Crypto-Enigma密码机原理
- sklearn:OneHotEncoder的简单用法
- python实现ORC/文字识别之pytesseract
- 如何快速识别图片中的文字?建议使用者两种方法
- hangfire 介绍(一)
- 一文带你了解 sensor
- 用二极管、三极管和MOS管搭建逻辑门电路,你确定这些电路图不收藏?
热门文章
- python面向对象的特征_03 Python 关键点讲解:面向对象的机制
- linux清空垃圾箱的命令,在Linux系统下安装Autotrash并使用Autotrash自动清空垃圾箱...
- mysql分裂函数函数_分裂函数等价于T-SQL?
- mysql star item 失败_解决CentOS7下MySQL服务启动失败的问题.md
- 查看oracle资源使用情况,Oracle查询表空间使用情况
- 文档 hbase_0783-6.2.0-如何在Hue中集成HBase
- flutter 禁止冒泡_【Flutter】Switch开关组件
- 手机通讯录备份代码实现一
- 高等数学一使用python实现极限后有代码
- (转)认识原型对象和原型链