【问题标题】:Python/Flask Parse response for a specific element特定元素的 Python/Flask 解析响应
【发布时间】:2021-10-17 12:18:40
【问题描述】:

我收到来自 Flask 请求的 R 响应。

R = requests.post(url)

我现在想解析 R 内容

我如何获得特定 <div> 标签的内容,例如 <div class='XXX'>

...
<div class='XXX'>
    Raoul
</dev>
...

所以在这个例子中,我想检索Raoul

我该怎么做?

R 成功,并且 R 不为空。但我有 R.raw.data = b'',我不明白,因为 R.text 将回复的正确正文返回给我。

提前致谢, 拉乌尔

【问题讨论】:

    标签: python html python-requests


    【解决方案1】:

    你会想要使用一个库。执行此操作的标准库是Beautiful Soup 4。文档非常详尽,您基本上可以通过以下方式完成:

    soup = BeautifulSoup(R.data, 'html.parser')
    your_divs = soup.find_all("div", {"class": "XXX"})
    
    

    【讨论】:

    • Flask 或者 urllib 没有解决方案吗?
    • 当然有,但您想使用 BS4 是有原因的。如果没有,你基本上最终会重写大部分库。解析 HTML 的大部分问题在于它是非标准的,并且您需要花费大量时间使用正则表达式来获得一个完全可实现的版本,而不会错过服务器可能给您的可能排列。如果你非常担心速度/效率/等等……你可能一开始就不想在 flask/python 中开发。
    • 不,我的意思是,当然 BS4 应该可以解决问题,我只是很惊讶在我看来这是一项常见的任务,它本身并不包含在 Flask 或 urllib 中。
    • 这似乎是一个疏忽,但 HTML 解析非常困难,它肯定需要一个通用库,以便在创建或弃用新的 HTML 标准时轻松更新。
    猜你喜欢
    • 1970-01-01
    • 2018-01-18
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-01
    • 1970-01-01
    相关资源
    最近更新 更多