многослойная таблица соскоба с питоном - PullRequest
0 голосов
/ 18 сентября 2018

Цель этого кода - очистить многостраничную таблицу данных от определенного URL.И он работал нормально только для первого ряда, не более.

Вот код:

from selenium import webdriver


class DataEngine:
    def __init__(self):
        self.url = 'https://www.investing.com/economic-calendar/house-price-index-147'
        self.driver = webdriver.PhantomJS(r"D:\Projects\Tutorial\Driver\phantomjs-2.1.1-windows\bin\phantomjs.exe")

    def title(self):
        self.driver.get(self.url)
        title = self.driver.find_elements_by_xpath('//*[@id="leftColumn"]/h1')
        for title in title:
            print(title.text)

    def table(self):
        self.driver.get(self.url)
        while True:
            table = self.driver.find_elements_by_xpath('//*[@id="historicEvent_372690"]')
            for table in table:
                print(table.text)

1 Ответ

0 голосов
/ 19 сентября 2018

Чтобы код очищал все строки на странице, обновите xpath

//*[@id="historicEvent_372690"]

до

//*[contains(@id,"historicEvent_")]

xpathВы используете в настоящее время читает только первый ряд.В xpath, которым я поделился, используется ключевое слово contains, которое ищет все элементы, содержащие id historicEvent_

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...