使用Selenium Python提取网页纯数字内容求助
用Selenium Python提取文本中的纯数字方案
处理
你已经用driver.find_elements_by_class_name("title")定位到元素,按以下步骤提取纯数字即可:
- 获取元素文本:通过
element.text拿到每个目标元素的内容 - 提取纯数字:借助Python的
re正则模块匹配文本中的数字部分
示例代码:
import re from selenium import webdriver driver = webdriver.Chrome() driver.get("目标网页URL") # 定位所有class为title的li元素 title_elements = driver.find_elements_by_class_name("title") for element in title_elements: text_content = element.text # 匹配文本中的连续数字串 number_list = re.findall(r'\d+', text_content) if number_list: pure_number = number_list[0] # 提取FB-91927中的91927 print(pure_number) driver.quit()
处理无属性的标签情况
对于无class、id、name属性的标签,可通过以下方式定位后提取数字:
- 按文本特征定位:如果内容是
FB-xxxxxx格式,用XPath定位://td[contains(text(), 'FB-')] - 按位置定位:如果在固定表格位置,比如第二列,用
//table/tr/td[2]
定位后同样用正则提取数字,示例代码:
# 定位包含FB-的td元素 td_elements = driver.find_elements_by_xpath("//td[contains(text(), 'FB-')]") for element in td_elements: text_content = element.text pure_number = re.findall(r'\d+', text_content)[0] print(pure_number)
注意事项
re.findall(r'\d+', text)会提取文本中所有连续数字串,返回列表,取第一个元素即可得到目标数字- 如果页面加载存在延迟,建议用
WebDriverWait添加显式等待,避免因元素未加载完成报错
内容的提问来源于stack exchange,提问作者joker egy
相关产品推荐
相关产品推荐

