Как извлечь значение из питона OuterHTMLin

#python #regex #selenium

#python #регулярное выражение #селен

Вопрос:

 <a id="ctl00_ctl00_ctl00_c_hdetail_lblPat2" href="javascript:popupPatient(218809, '0');">CHATARPAL, LALITA</a>
 

Я пытаюсь получить текст (218809) из outerHTML. ранее я делал то же самое с AHK, но теперь я изучаю Python, чтобы делать то же самое.

Вот мой код.

 from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import time
import re
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.ui import Select

driver.get("https://brightree.net/F1/0375/MBSNI/Receipts/Invoices/Invoice_Invoice.aspx?InvoiceKey=3729668")

wait=WebDriverWait(driver,10)
wait.until(EC.element_to_be_clickable((By.XPATH,"//*[@id='ctl00_ctl00_ctl00_c_hdetail_lblSalesOrder2']")))

Target=driver.find_element_by_id("ctl00_ctl00_ctl00_c_hdetail_lblPat2")
Get_Value=Target.get_attribute("outerHTML")
print(Get_Value)
 

Ответ №1:

 Get_Value=Target.get_attribute("href")
Get_Value=re.findall('d ', Get_Value)[0]
print(Get_Value)
 

используйте регулярное выражение d для поиска цифр, d указывает на одну или несколько цифр

Ответ №2:

 # re is short for [r]egular [e]xpression
from re import match

# This is your example string from the question. The string contains both single
# and double quotes, so I used triple quotes to avoid needing to escape them.
string = """<a id="ctl00_ctl00_ctl00_c_hdetail_lblPat2" href="javascript:popupPatient(218809, '0');">CHATARPAL, LALITA</a>"""

# match any number of characters, then the method name, then capture the number.
pattern = r'.*?popupPatient((d )'

# Get the first capture group from the regex and print it
print(match(pattern, string).group(1))