爬取网页页面所有的文字,并从中选出需要的关键词,然后写出包含关键词的原文,Python代码
时间: 2024-09-06 21:01:34 浏览: 64
模拟搜索引擎关键词自动分词(python利用结巴分词关键词自动提取)
要实现爬取网页页面的所有文字,并从中选出需要的关键词,然后写出包含关键词的原文,可以使用Python中的几个库:`requests`用于发起网络请求获取网页内容,`BeautifulSoup`用于解析网页并提取文本,以及`re`库用于正则表达式匹配关键词。以下是一个简单的示例代码:
```python
import requests
from bs4 import BeautifulSoup
import re
# 定义一个函数来提取网页中的文本
def extract_text_with_keywords(url, keywords):
# 发起网络请求获取网页内容
response = requests.get(url)
# 使用BeautifulSoup解析HTML内容
soup = BeautifulSoup(response.text, 'html.parser')
# 获取所有文字内容
text = soup.get_text()
# 将所有文字内容根据换行符分割成列表
text_lines = text.split('\n')
# 创建一个空列表来保存包含关键词的文本行
filtered_lines = []
# 遍历每一行文字,检查是否包含关键词
for line in text_lines:
# 使用正则表达式检查关键词是否出现在当前行中
if any(re.search(keyword, line) for keyword in keywords):
filtered_lines.append(line)
return '\n'.join(filtered_lines)
# 网页URL
url = 'http://example.com'
# 需要搜索的关键词列表
keywords = ['关键词1', '关键词2']
# 调用函数并打印结果
print(extract_text_with_keywords(url, keywords))
```
请将`http://example.com`替换为你需要爬取的网页地址,将`['关键词1', '关键词2']`替换为你想要搜索的关键词列表。
注意:在实际使用中,需要确保遵守网站的robots.txt协议和版权法规,不要爬取受版权保护的内容。同时,过度请求网站可能会对网站服务器造成负担,甚至可能导致您的IP被封禁。
阅读全文