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

如何在Python HTML Parser爬虫中过滤含指定关键词的URL

实现HTML Parser中直接过滤含特定关键词的URL

你只需要在生成完整URL后,添加关键词判断逻辑,符合条件的URL才加入集合即可。推荐把关键词做成可配置参数,后续修改更灵活,具体修改如下:

修改要点

  • 在LinkFinder的初始化方法中新增keyword参数,用来指定要筛选的关键词
  • 在生成拼接后的URL后,增加判断:只有当URL包含指定关键词时,才将其添加到self.links集合中

修改后的完整代码

from html.parser import HTMLParser
from urllib import parse


class LinkFinder(HTMLParser):

    def __init__(self, base_url, page_url, keyword):
        super().__init__()
        self.base_url = base_url
        self.page_url = page_url
        self.links = set()
        self.keyword = keyword  # 新增:存储要过滤的关键词

    def handle_starttag(self, tag, attrs):
        if tag == 'a':
            for (attribute, value) in attrs:
                if attribute == 'href':
                    url = parse.urljoin(self.base_url, value)
                    # 新增:判断URL是否包含指定关键词,符合条件才添加
                    if self.keyword in url:
                        self.links.add(url)

    def page_links(self):
        return self.links

    def error(self, message):
        pass

使用示例

实例化LinkFinder时传入要过滤的关键词即可,比如要抓取包含blog的URL:

finder = LinkFinder("https://example.com", "/", "blog")
# 后续调用feed等操作...

如果需要支持多个关键词,可以把keyword改成列表,再将判断逻辑调整为any(key in url for key in self.keywords),按需修改即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 06:31:10