欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-05-11 09:53:41
解析HTML的Python库--Requests-HTML推荐 HTML Parsing for Humans, 这句话是库作者(kennethreitz)原话, 提现出了这个库...

解析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')
[, ... ,] # 元素过多 不多展示了

将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('p')
[, ,  ... ,]