python - Python使用关键字提取html网页内容
问题描述
使用python想通过匹配关键字来提取上下文,
这是我的python脚本
import requests
from bs4 import BeautifulSoup
import re
html = """ <pre>
Companies:
Telstra VI Huawei
Countries:
JPN CHN MLY
</pre>
<pre>
Data center:
US UK
</pre>"""
r = requests.get(html)
soup = BeautifulSoup(r.content, "html.parser")
k = soup.find(text=re.compile("companies:")).parent.text
print (k)
预期输出:
Companies:
Telstra VI Huawei
解决方案
尝试这个。
from simplified_scrapy import SimplifiedDoc
html = """ <pre>
Companies:
Telstra VI Huawei
Countries:
JPN CHN MLY
</pre>
<pre>
Data center:
US UK
</pre>"""
doc = SimplifiedDoc(html)
pre = doc.getElementByReg('Companies:')
print(pre.text)
print('-' * 50)
print(pre.replaceReg('Countries:[\s\S]*', '').strip())
结果:
Companies: Telstra VI Huawei Countries: JPN CHN MLY
--------------------------------------------------
Companies:
Telstra VI Huawei
推荐阅读
- haskell - 由于 Haskell 上的类型不兼容,Data.Text 操作发出错误
- generics - 如何返回既不是通用也不是具体的类型
- javascript - 为什么我的 webpack 入口点之一没有执行 javascript?
- javascript - 处理嵌套的异步函数以返回一个最终结果
- swift - Swift 中的 `async let` 声明的类型是什么?
- javascript - 如何循环输入我从 firebase api 获得的这个 json 对象,以获得“Rachel Howell”?
- reactjs - 初始状态未在 Dispatch 上更新
- python - 将 JSON 插入 PostgreSQL 数据库:字符串格式化期间并非所有参数都转换
- apache-kafka - 在 debezium db2 kafka connect 中找不到类 DB2Driver
- java - 在 POST 方法中从邮递员到球衣获取一个空的 JSONObject