You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python和Selenium遍历网站内容并筛选含指定关键词的线程

没问题,你的需求其实很好实现,咱们一步步来调整代码就行~

首先,你现在通过threads = driver.find_element_by_id('threads').text拿到的是一整段包含所有线程内容的字符串,里面每一行线程信息是用换行符\n分隔开的。所以第一步要把这个大字符串拆分成单独的行,这样才能逐行检查关键词。

另外先提个小细节:你用的find_element_by_id是Selenium旧版本的写法,新版本已经弃用了,建议换成更规范的find_element(By.ID, 'threads'),同时路径里的\要注意转义问题,加个r变成原始字符串更稳妥。

下面是修改后的完整代码,我会一步步标注说明:

from selenium import webdriver
from selenium.webdriver.common.by import By  # 新增导入,用于定位元素

# 加r表示原始字符串,避免路径里的\被当成转义符
PATH = r"C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)
driver.get('https://boards.4channel.org/biz/catalog')

# 改用新版本的元素定位方法
threads = driver.find_element(By.ID, 'threads').text
driver.quit()  # 可以提前关闭浏览器,因为已经拿到文本了

# 1. 把整段文本拆分成单独的行
thread_lines = threads.split('\n')

# 2. 定义你要追踪的关键词列表,以后加关键词直接在这里加就行
target_keywords = ['DOGE', 'NFY', 'CORX']

# 3. 遍历每一行,筛选包含关键词的内容
matching_lines = []
for line in thread_lines:
    # 检查当前行是否包含任意一个目标关键词
    for keyword in target_keywords:
        if keyword in line:
            matching_lines.append(line)
            break  # 找到一个关键词就不用再检查其他的,避免重复添加

# 4. 输出筛选结果
print("找到包含目标关键词的内容:")
for line in matching_lines:
    print(line)

如果你觉得循环写法有点繁琐,也可以用更Pythonic的列表推导式,效果是一样的:

# 用列表推导式一行完成筛选
matching_lines = [line for line in thread_lines if any(keyword in line for keyword in target_keywords)]

额外优化:忽略大小写匹配

如果论坛里有人用小写(比如doge)或者混合大小写(比如Doge)讨论,你可以把行文本和关键词都转成小写,这样就能匹配到所有大小写形式:

matching_lines = []
for line in thread_lines:
    line_lower = line.lower()
    for keyword in target_keywords:
        if keyword.lower() in line_lower:
            matching_lines.append(line)
            break

这样不管是DOGE还是doge都能被匹配到啦~

内容的提问来源于stack exchange,提问作者PopFendi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 14:34:12