如何使用Python Selenium从动态URL抓取包含链接的完整数据字段
问题原因
你当前代码调用.get_text()仅提取了DOM节点的文本内容,直接丢弃了<a>标签里存储的Chart、Holders对应的链接属性,因此无法获取到目标链接数据。
调整后完整代码
from bs4 import BeautifulSoup import time from selenium import webdriver driver = webdriver.Chrome('chromedriver.exe') url = 'https://poocoin.app/tokens/0xe56842ed550ff2794f010738554db45e60730371' driver.get(url) # 如需提升稳定性可替换为显式等待,这里保留原有逻辑 time.sleep(8) soup = BeautifulSoup(driver.page_source, 'lxml') # 定位数据父容器 data_container = soup.find('div', class_='overflow-auto unpad-3 ps-3') # 遍历每一行LP数据 for row in data_container.find_all(recursive=False): # 提取基础持有信息,移除末尾的Chart、Holders文本 base_info = row.get_text().rsplit(' | Chart | Holders', 1)[0] print(base_info) # 提取两个a标签的链接 a_tags = row.find_all('a') chart_url = a_tags[0]['href'] holders_url = a_tags[1]['href'] # 若返回为相对路径,可取消注释下方代码补充前缀拼接为完整链接: # chart_url = f'https://bscscan.com{chart_url}' # holders_url = f'https://bscscan.com{holders_url}' # 按要求格式输出 print(f' | Chart {chart_url}') print(f' | Holders {holders_url}') driver.quit()
调整说明
- 改为先遍历每一条独立的LP数据节点,分别提取文本和链接属性,避免信息丢失
- 可根据实际返回的链接格式选择是否补充域名前缀,拼接为完整可访问的链接
- 原有的固定等待时间可替换为Selenium显式等待逻辑,等待目标节点加载完成后再解析,避免网络波动导致数据缺失
内容的提问来源于stack exchange,提问作者rbutrnz
相关产品推荐
相关产品推荐

