当前位置:首页 > 文章列表 > 文章 > python教程 > Requests-HTML提取指定class超链接方法

Requests-HTML提取指定class超链接方法

2026-02-08 13:28:06 0浏览 收藏

偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《Requests-HTML 提取指定 class 超链接方法》,这篇文章主要会讲到等等知识点,不知道大家对其都有多少了解,下面我们就一起来看一吧!当然,非常希望大家能多多评论,给出合理的建议,我们一起学习,一起进步!

如何使用 Requests-HTML 精确提取指定 class 的超链接

本文介绍如何利用 Requests-HTML 库通过 CSS 选择器精准定位并提取具有特定 class(如 `class="in-match"`)的 `` 标签中的 `href` 属性值,避免抓取无关链接,提升网页解析效率与准确性。

在网页数据采集实践中,常需从大量 HTML 链接中筛选出符合业务逻辑的特定目标链接(例如仅抓取“比赛详情页”对应的 )。原代码中直接调用 r.html.links 会返回页面中所有唯一 href 值(含导航栏、分页、广告等非目标链接),缺乏结构化控制,易引入噪声或遗漏关键路径。

Requests-HTML 提供了强大且简洁的 CSS 选择器支持(基于 PyQuery),推荐使用 find() 方法替代 links 属性,实现按标签语义精准提取。针对示例 HTML 中 的需求,正确做法是:

from requests_html import HTMLSession

matchlink = 'https://www.betexplorer.com/football/algeria/ligue-1/results/'

session = HTMLSession()
r = session.get(matchlink)
# 关键:使用 CSS 选择器定位带 in-match 类的 a 标签
anchor_elements = r.html.find('a.in-match')

match_urls = []
for elem in anchor_elements:
    href = elem.attrs.get('href')
    if href:  # 防御性检查:确保 href 存在且非空
        # 补全为绝对 URL(因原始 href 多为相对路径)
        full_url = 'https://www.betexplorer.com' + href
        match_urls.append(full_url)
        print(full_url)

print(f"\n共提取 {len(match_urls)} 个 in-match 链接")

核心优势说明: