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

如何使用Python从网页中提取包含非空锚文本且符合条件的p标签内容

调整后可实现需求的完整代码

import time
from bs4 import BeautifulSoup
from selenium import webdriver

# 注意修改chromedriver路径为你本地的实际路径
driver = webdriver.Chrome('chromedriver.exe')
addrlist = ['https://poocoin.app/rugcheck/0x8076c74c5e3f5852037f31ff0093eeb8c8add8d3/dev-activity',
            'https://poocoin.app/rugcheck/0xd7ac542add4994a9d72369ab8d4788a38df6a217/dev-activity',
            'https://poocoin.app/rugcheck/0xf017e2773e4ee0590c81d79ccbcf1b2de1d22877/dev-activity']

for url in addrlist: 
    # 从URL中提取当前token的地址,作为输出块的首行
    token_addr = url.split('/')[-2]
    print(token_addr)
    
    driver.get(url)
    time.sleep(8)
    soup = BeautifulSoup(driver.page_source, 'lxml')
    pdata = soup.find_all('div',attrs={"class":"mt-2"})
    
    for x in pdata:
        p_tag = x.find('p')
        if not p_tag:
            continue
        # 筛选条件1:p标签内存在非空锚文本的a标签
        a_tags = p_tag.find_all('a')
        has_valid_a = any(a.get_text(strip=True) != '' for a in a_tags)
        if not has_valid_a:
            continue
        # 筛选条件2:排除不需要的无关p标签
        p_text = p_tag.get_text(strip=True)
        if p_text.startswith('Go to chart') or p_text.startswith('This is a log of'):
            continue
        # 输出格式化的内容,前面加两个空格缩进
        print(f'  {p_text}')
    # 每个地址输出后加空行分隔
    print()
driver.quit()

核心调整说明

  • 直接从请求URL中拆分提取token地址,作为每组结果的首行输出
  • 新增两层过滤规则:先校验p标签内是否存在非空文本的a标签,再过滤掉"Go to chart"、说明文本等无关内容
  • 使用BeautifulSoup的get_text()方法自动提取p标签内的所有纯文本内容,自动去除HTML标签
  • 对有效内容添加缩进,每组结果用空行分隔,匹配你需要的可读性要求

可选优化建议

  • 可以用Selenium的显式等待(WebDriverWait)替换固定的time.sleep(8),根据页面元素加载状态判断等待时间,提升爬取效率
  • 如果需要统一日期格式,可以额外引入datetime模块对提取到的日期字符串做格式化处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 16:15:04