python - 抓取包含多个子字符串(即关键字)的所有字符串的网页
问题描述
我对此很陌生,并且一直在努力实现自己的目标,因此我想我会向社区寻求帮助。如果我的一个关键词在其中显示为子字符串,我希望能够从网页中提取完整的文本字符串。我一直在用漂亮的汤,但我愿意尝试别的东西。
我用于示例的网站是 www.meridianenergy.co.nz。我感兴趣的关键词是“可持续”、“可再生”和“电动汽车”。本质上,我想提取主页上可见的每个字符串,其中一个或多个这些术语出现在其中。
到目前为止,我已经能够使用下面的代码一次完成一个学期,但如果可能的话,我希望能够一次查找所有关键词(因为我可能需要添加更多关键词随着时间的推移)。谢谢!
import requests
from bs4 import BeautifulSoup
page = requests.get('https://www.meridianenergy.co.nz')
soup = BeautifulSoup(page.content, 'html.parser')
results = soup.find_all(string=lambda text: 'renewable' in text)
print(results)
解决方案
您可以以列表格式添加所有关键字。然后在遍历汤对象时对其进行迭代。
import requests
from bs4 import BeautifulSoup
page = requests.get('https://www.meridianenergy.co.nz')
soup = BeautifulSoup(page.content, 'html.parser')
keywords_to_find = ['sustainable', 'renewable', 'electric cars']
results = soup.find_all(string=lambda text: text and any (x in text for x in keywords_to_find))
print(results)
结果
['100% 可再生能源发电','我们产生的所有能源都来自 100% 可再生能源——风能、水能和太阳能。我们是新西兰最大的发电机,通过我们的风电场、水电站和太阳能电池板发电。这就是魔法发生的地方。我们相信可再生能源是我们星球未来的唯一出路。', 'Turbine™ - 用经过认证的可再生能源酿造', “我们为车库项目的团队感到非常自豪。去年,他们用来自我们布鲁克林涡轮机的 100% 经认证的可再生能源。这就是我们提供帮助的一点——我们很高兴能够为其他企业开发经认证的可再生能源产品。", ' 您可以在一瓶 Garage Project 的 Turbine™\xa0beer 上发现新西兰第一个经过认证的可再生能源标志。干杯。',' 是一家新西兰电力公司,通过 100% 可再生能源——风、水和太阳能发电。我们相信这是人类和地球前进的唯一途径。']
希望这可以帮助。
推荐阅读
- sql - 我需要检查每一行是否包含指定的值
- c# - 将 JSON 反序列化为 C# 对象
- javafx - 拖动对象时是否可以在指针旁边显示带有文本的图像?
- angular - 更改绑定到 ng-model 的值不会更改输入文本上的值
- android-emulator - 如何访问 android avd 设备内部存储
- java - 我在休眠工具中找不到 postgresql 表
- javascript - 通过 JS 更改 CSS 仅影响第一个数组项
- c++ - std::next 是向量 O(n) 还是 O(1)?
- unit-testing - 如何使用 JUnit 在 android 中对 Firestore 进行单元测试?
- java - 检索照片时相机崩溃