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

如何使用Python Selenium抓取<li>标签内的子标签

用Selenium定位ScienceDirect搜索结果
  • 标签内的特定子元素
  • 核心思路

    先定位搜索结果对应的所有<li>容器,再在每个容器内定位目标子标签;或者直接使用后代选择器/XPath一步定位到目标元素。以下是具体实现方案(以Python为例):


    1. 先获取所有
  • 结果项,再遍历定位子元素
  • 假设你的目标<li>有统一类名(需根据实际HTML调整),先批量获取所有结果容器,再逐个提取子元素:

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    # 初始化Chrome浏览器
    driver = webdriver.Chrome()
    driver.get("https://www.sciencedirect.com/search?qs=physics")
    
    # 等待搜索结果加载完成(替换为实际<li>容器的选择器)
    wait = WebDriverWait(driver, 10)
    result_items = wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "li.result-list-item")))
    
    # 遍历每个<li>,提取目标子元素
    for item in result_items:
        # 示例:提取标题(假设标题是<li>下的h2>a标签)
        title = item.find_element(By.CSS_SELECTOR, "h2>a").text
        # 示例:提取作者(假设作者是<li>下的div.author-list span)
        authors = item.find_element(By.CSS_SELECTOR, "div.author-list span").text
        # 示例:提取摘要(假设摘要是<li>下的div.abstract-content)
        abstract = item.find_element(By.CSS_SELECTOR, "div.abstract-content").text
        
        print(f"标题:{title}\n作者:{authors}\n摘要:{abstract}\n---")
    
    driver.quit()
    

    2. 直接用后代选择器定位目标子元素

    如果不需要遍历整个<li>,可以直接通过CSS选择器或XPath定位到<li>内的特定子元素:

    • CSS选择器:li.result-list-item h2>a(直接定位所有<li>下的标题链接)
    • XPath://li[contains(@class, 'result-list-item')]/h2/a(效果同上)

    示例代码:

    # 直接获取所有标题元素
    titles = wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "li.result-list-item h2>a")))
    for title in titles:
        print(title.text)
    

    注意事项

    • 替换选择器:根据实际HTML结构调整类名、标签层级,确保选择器能精准匹配目标元素。
    • 处理动态加载:ScienceDirect搜索结果可能滚动加载,若需获取更多内容,需模拟滚动到底部并等待新结果加载。
    • 规避反爬:避免过快请求,可添加合理等待时间,不要一次性抓取大量数据,防止IP被封禁。

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

    相关产品推荐
    方舟 Agent Plan

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

    最近更新时间:2026.08.14 11:25:28