推荐一个解析HTML的Python库--Requests-HTML

推荐一个解析HTML的Python库–Requests-HTML

HTML Parsing for Humans, 这句话是库作者(kennethreitz)原话, 提现出了这个库的人性化, 话不多说, 来看几个例子吧.
作者以Python官网做的例子, 在这里我用CSDN吧, 嘻嘻.
首先获取首页:

>>> from requests_html import session
>>> r = session.get('https://www.csdn.net')

获取所有连接:

 r.html.links
{'http://blog.csdn.net/sfM06sqVW55DFt1', '/nav/engineering', 'http://www.programmer.com.cn/',...}
# 由于这里连接较多 在这里仅仅粘贴一部分

获取所有绝对地址

 r.html.absolute_links
{'https://www.csdn.net/nav/iot', 'http://blog.csdn.net/sfM06sqVW55DFt1', ... ,}

使用JQuery选择器

>>> my_carousel = r.html.find('#myCarousel', first=True)
>>> print(my_carousel.text)
程序员们,你们再这样下去会没朋友的
从一份不合格的白皮书,了解蔡文胜辟谣美链背后的蹊跷
吉利花90亿美元成奔驰母公司最大股东,背后打的什么算盘?
一夜身价暴涨千倍,如何发布自己的ICO?
一个优秀的程序员是如何炼成的
Previous
Next

获取元素属性

>>> my_carousel.attrs
{'id': 'myCarousel', 'class': 'slide', 'data-ride': 'carousel'}

通过元素获取元素:

>>> my_carousel.find('a')
[<Element 'a' href='http://blog.csdn.net/csdnsevenn/article/details/79366722' target='_blank'>, ... ,] # 元素过多 不多展示了

将HTML转换为markdown:

>>> print(about.markdown)

* [About](/about/)

  * [Applications](/about/apps/)
  * [Quotes](/about/quotes/)
  * [Getting Started](/about/gettingstarted/)
  * [Help](/about/help/)
  * [Python Brochure](http://brochure.getpython.info/)
# 这里粘贴了作者的例子, CSDN上获取的没有这个例子清晰

支持xpath解析

>>> r.html.xpath('div')
[<Element 'div' class='read_num'>, <Element 'div' class='read_num'>,  ... ,] 

个人感觉这个库真的是很人性化, 并且源码并不多, 欢迎有兴趣的可以阅读一下, 小白一枚 让大神们见笑了.

源码地址

阅读更多

扫码向博主提问

AnonymousQsh

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • Python
  • Django
去开通我的Chat快问
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/anonymous_qsh/article/details/79372524
文章标签: Python
个人分类: Python
所属专栏: Python小站
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭