Python 边做边学 8.4 工具类--HTML解析工具(HtmlSoupUtil)
2017-08-18 15:14
661 查看
媳妇给我买衣服,我说:”之前我都是两件衬衫过夏天的~”
她没有说话,用眼神表达了鄙视…
原文连接:http://blog.csdn.net/tomorrow13210073213/article/details/77370291
http://cuiqingcai.com/1319.html
https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html
1. 通过ID获取元素;
2. 通过class获取元素;
3. 通过name获取元素;
4. 通过标签名获取元素
5. 获取元素内部文本;
以上就是我们用到的解析html的工具类,需求相对比较简单;
以上内容仅供练习,学习使用;
她没有说话,用眼神表达了鄙视…
原文连接:http://blog.csdn.net/tomorrow13210073213/article/details/77370291
基础工具
java里有“jsoup”解析html;python里有“Beautiful Soup”;如何寻找节点,如何获得节点属性/内容,用法大同小异;关于“Beautiful Soup”的具体用法不再详述,参考如下:http://cuiqingcai.com/1319.html
https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html
进一步封装
为了使用方便,基于“Beautiful Soup”进行了进一步封装,使用更方便;封装之前,先确定我们需要哪几个方法:1. 通过ID获取元素;
2. 通过class获取元素;
3. 通过name获取元素;
4. 通过标签名获取元素
5. 获取元素内部文本;
Talk is cheap. Show me the code
# 通过标签名和class获取第一个元素 def get_one_by_class(soup, ele_name, class_name): if soup is None: return None eles = soup.find_all(ele_name, {"class": class_name}, limit=1) if eles is None or len(eles) == 0: return None return eles[0] # 通过标签名和class获取所有元素 def get_by_class(soup, ele_name, class_name): if soup is None: return None eles = soup.find_all(ele_name, {"class": class_name}) if eles is None or len(eles) == 0: return None return eles # 通过标签名和id获取第一个元素 def get_one_by_id(soup, ele_name, id_name): if soup is None: return None eles = soup.find_all(ele_name, {"id": id_name}, limit=1) if eles is None or len(eles) == 0: return None return eles[0] # 通过标签名和id获取所有元素 def get_by_id(soup, ele_name, id_name): if soup is None: return None eles = soup.find_all(ele_name, {"id": id_name}) if eles is None or len(eles) == 0: return None return eles # 通过标签名和name获取第一个元素 def get_one_by_name(soup, ele_name, name): if soup is None: return None eles = soup.find_all(ele_name, {"name": name}, limit=1) if eles is None or len(eles) == 0: return None return eles[0] # 通过标签名和name获取所有元素 def get_by_name(soup, ele_name, name): if soup is None: return None eles = soup.find_all(ele_name, {"name": name}) if eles is None or len(eles) == 0: return None return eles # 通过标签名获取第一个元素 def get_one_by_tag(soup, ele_name): if soup is None: return None eles = soup.find_all(ele_name, limit=1) if eles is None or len(eles) == 0: return None return eles[0] # 通过标签名获取所有元素 def get_by_tag(soup, ele_name): if soup is None: return None eles = soup.find_all(ele_name) if eles is None or len(eles) == 0: return None return eles # 获取元素属性 def get_ele_attr(ele, attr_name): if ele is None: return None atts = ele.get(attr_name) if atts is None or len(atts) == 0: return None return atts # 获取元素内部文本 def get_ele_txt(ele): if ele is None: return None txt = ele.get_text() if txt is None or len(txt) == 0: return None return txt
以上就是我们用到的解析html的工具类,需求相对比较简单;
以上内容仅供练习,学习使用;
相关文章推荐
- Python 边做边学 8.5 工具类--MD5工具(Md5Util)
- Python 边做边学 8.6 工具类--时间工具(TimeUtil)
- Python 边做边学 8.1 工具类--HTTP工具
- Python网页解析:BeautifulSoup vs lxml.html
- Python HTML解析模块HTMLParser(爬虫工具)
- python 解析html之BeautifulSoup
- python 解析html之BeautifulSoup
- 转:Python网页解析:BeautifulSoup vs lxml.html
- Python 边做边学 8.2 工具类--配置文件工具(CfgUtil)
- Python 边做边学 8.3 工具类--数据库工具(DbUtil)
- python 解析html 时lxml跟beautifulSoup对比
- 【Python】beautifusoup解析HTML并将数据写入文件
- Python 边做边学 9.6 数据库操作--查询条件解析工具(QCondition)
- Python 边做边学 8.7 工具类--缓存工具(RedisUtil)
- 用python解析html
- python爬虫-html解析器beautifulsoup
- 用python来进行html页面解析
- Python 命令行解析工具 Argparse介绍(一)
- Python中第三方的用于解析HTML的库:BeautifulSoup
- 软件编程工具书(java、C、C++、HTML、JS、SSH、Python等)