У меня есть несколько случаев строк таблицы, из которых я хочу извлечь данные:
Дело 1
Onsite Service After Remote Diagnosis April 19, 2014 April 19, 2017
Дело 2
CAR October 15, 2016 October 15, 2017
Onsite Service After Remote Diagnosis October 15, 2016 October 15, 2019
Дело 3
NBD ProSupport July 16, 2008 July 15, 2011
Onsite Service After Remote Diagnosis July 16, 2008 July 15, 2011
Информация, которую мне нужно извлечь, находится в строках, которые содержат «Обслуживание на месте после удаленной диагностики» во втором тд, который будет для каждого случая датой справа от строки
Ожидаемый вывод:
April 19, 2017
October 15, 2017
July 15, 2011
Мой код:
from selenium import webdriver
import time
from openpyxl import load_workbook
driver = webdriver.Chrome()
def scrape(codes):
dates = []
for i in range(len(codes)):
driver.get("https://www.dell.com/support/home/us/en/19/product-support/"
"servicetag/%s/warranty?ref=captchasuccess" % codes[i])
# Solve captcha manually
if i == 0:
print("You now have 120\" seconds to solve the captcha")
time.sleep(120)
print("120\" Passed")
# Extract data
expdate = driver.find_element_by_css_selector("#printdivid > div > div.not-annotated.hover > table:nth-child(3) > tbody > tr > td:nth-child(3)")
print(expdate.get_attribute('innerText'))
driver.close()
codes = ['159DT3J', '15FDBG2', '10V8YZ1']
scrape(codes)
Мой вывод:
April 19, 2014
October 15, 2016
July 16, 2008
Взято из первого появившегося ряда и первого td
Я пытался изменить tbody > tr > td:nth-child(3)
, но идентификация по тексту была бы лучше и избежать ошибок.