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

如何在for循环中使用requests_html获取条目的绝对链接URL

requests_html抓取条目URL并存入DataFrame的实现方法

完全可以实现该需求,你在抓取到条目的Element对象后,直接提取对应<a>标签的href属性即可,无需引入额外工具。

操作步骤

  • 定位条目时先拿到完整的Element对象,不要直接提取文本。若你当前定位的是条目外层容器,可在容器内二次查找对应的<a>标签元素。
  • 标题通过Element对象的text属性获取,URL通过Element对象的attrs['href']属性获取。如果获取到的是相对路径,可调用r.html.urljoin()方法转为绝对路径。
  • 将所有条目的标题、URL整理为字典列表后,直接传入pandas即可生成DataFrame。

示例代码

import pandas as pd
from requests_html import HTMLSession

# 初始化会话、请求页面
session = HTMLSession()
r = session.get("替换为你要爬取的页面地址")

# 定位所有条目(选择器替换为你实际使用的定位规则)
# 如果条目外层是div,就写对应div的选择器,后续循环内再找a标签
item_list = r.html.find("a.item")

result = []
for item in item_list:
    # 提取标题
    title = item.text.strip()
    # 提取链接,用get方法避免个别无href的条目报错
    url = item.attrs.get("href", "")
    # 相对路径转绝对路径,不需要可以注释掉
    url = r.html.urljoin(url)
    result.append({
        "标题": title,
        "链接": url
    })

# 转为DataFrame
df = pd.DataFrame(result)
# 可按需执行df.to_csv("result.csv", index=False)保存到本地

注意事项

  • 如果你当前定位的是条目的外层非a标签元素,可在循环内通过a_tag = item.find("a", first=True)先拿到子元素的a标签,再从a_tag提取href属性即可。
  • 若抓取的是动态渲染的页面,调用r.html.render()方法加载渲染后的页面内容后再执行定位提取即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:36:09