Соскребание текста с веб-сайта с помощью Selenium - PullRequest
0 голосов
/ 17 октября 2019

Мне удалось добраться до стадии, когда я могу открыть этот веб-сайт. https://vehicleenquiry.service.gov.uk/ConfirmVehicle

Введите регистрационный номер транспортного средства, нажмите «Продолжить», нажмите «Да», это правильный автомобиль и снова перейдите к следующему. стр.

Теперь посмотрим, как я могу получить данные о типе топлива с этого веб-сайта, т.е. автомобиль, указанный ниже (автомобиль моих родителей), будет называться PETROL. Кажется, не могу понять - много гуглил!

Я также хочу вытащить емкость цилиндра (CC): запись и Год выпуска.

def vehicleRegChecker():

    from selenium import webdriver
    import time

    driver = webdriver.Chrome()
    driver.get("https://vehicleenquiry.service.gov.uk/ConfirmVehicle")
    driver.find_element_by_name("Vrm").send_keys("VX02LTE")

    python_button = driver.find_elements_by_xpath("//button[@name='Continue'][@type='submit']")[0]
    python_button.click()

    python_button = driver.find_elements_by_xpath("//input[@data-val='true'][@type='radio']")[0]
    python_button.click()

    python_button = driver.find_elements_by_xpath("//button[@name='Continue'][@type='submit']")[0]
    python_button.click()

vehicleRegChecker()

Ответы [ 2 ]

0 голосов
/ 17 октября 2019

после того, как весь ваш код запустит это:

fuel_type = driver.find_element_by_id('FuelTypeShown').text
years_of_manufacture = driver.find_element_by_xpath('//li[.//*[contains(text(), "Year of manufacture")]]//strong').text
cc = driver.find_element_by_xpath('//*[@id="CylinderCapacity"]//strong').text
print(fuel_type)
print(years_of_manufacture)
print(cc)
>>> PETROL
>>> 2002
>>> 1390 cc
0 голосов
/ 17 октября 2019

Я думаю, что вам нужно следующее:

elems = driver.find_elements_by_class_name('list-summary-item')

print(elems[2].text)
print(elems[3].text)

и потому что у него тоже есть заголовок, если вы хотите, чтобы только значения делали это:

elems = driver.find_elements_by_class_name('list-summary-item')

print(elems[2].text.split('\n')[1])
print(elems[3].text.split('\n')[1])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...