用python来实现,当http://192.168.20.137:6179/页面上<h2 id=“slate”>变化时,打印变化的<h2 id=“slate”>内容,不用BeautifulSoup,只用requests
时间: 2024-09-10 11:15:32 浏览: 43
slate-language:从 code.google.compslate-language 自动导出
要实现这个功能,你可以使用Python的requests库来请求目标网页,并通过比较HTML内容来检测特定元素<h2 id="slate">的变化。以下是一个简单的实现步骤:
1. 使用requests.get()函数来获取目标网页的HTML内容。
2. 解析HTML内容并提取出<h2 id="slate">标签内的内容。
3. 将获取的内容保存下来,以便进行后续比较。
4. 定期重复步骤1到3,并与之前保存的内容进行比较。
5. 如果发现内容发生变化,则打印出来。
这里有一个简单的示例代码:
```python
import requests
import time
from html.parser import HTMLParser
# 自定义HTML解析器,用于获取特定id的元素内容
class MyHTMLParser(HTMLParser):
def __init__(self):
super().__init__()
self.slate_content = None
def handle_starttag(self, tag, attrs):
if tag == 'h2':
for attr in attrs:
if attr[0] == 'id' and attr[1] == 'slate':
self.slate_content = ''
def handle_data(self, data):
if self.slate_content is not None:
self.slate_content += data
# 获取页面内容并提取特定id的元素内容
def get_content(url):
response = requests.get(url)
parser = MyHTMLParser()
parser.feed(response.text)
return parser.slate_content
# 比较内容是否发生变化
def compare_content(url, last_content):
current_content = get_content(url)
if current_content != last_content:
print(f"变化了,新的内容是:{current_content}")
return current_content
return last_content
# 目标网页URL
url = 'http://192.168.20.137:6179/'
# 初始内容
last_content = get_content(url)
# 主循环
while True:
time.sleep(5) # 每5秒检查一次
last_content = compare_content(url, last_content)
```
这段代码首先定义了一个自定义的HTML解析器`MyHTMLParser`,用于从HTML中提取id为"slate"的<h2>元素的内容。然后定义了`get_content`函数来获取页面内容并提取特定id的元素内容。`compare_content`函数用于比较当前内容和上次保存的内容是否发生变化,并在变化时打印出来。
注意:这个代码示例中有一个简单的睡眠时间,用于控制请求的频率。在实际使用中,你可能需要根据实际需要调整时间间隔以及处理可能出现的异常和错误。
阅读全文