Python: как извлечь таблицы из нескольких ссылок с одной страницы под определенным заголовком - PullRequest
0 голосов
/ 08 мая 2018

Я могу извлечь все таблицы с одной страницы ( Office 365 и Office 2016 ), указав прямую ссылку, используя

dfs = pd.read_html(
    "https://support.office.com/en-us/article/what-s-the-difference-between-office-365-and-office-2016-ed447ebf-6060-46f9-9e90-a239bd27eb96?ui=en-US&rs=en-US&ad=US", header=0)

for df in dfs:
    df

Как можно извлечь все таблицы в разделе Учетная запись и оплата без явного указания ссылок для каждой подстраницы в разделе Учетная запись и оплата ?

Таким образом, в основном это происходит различия между Office 365 и Office 2016 извлекает таблицу, затем переходит на забыл имя пользователя или пароль для офиса и извлекает таблицу, переходит на отменить подписку и выдержки из таблицы. Если стола нет, он двигается дальше.

1 Ответ

0 голосов
/ 08 мая 2018

Ни один из этих заголовков не содержит тегов TABLE, поэтому я немного озадачен тем, что вы имеете в виду.

Если бы это был я, я бы указывал в строках заголовки, из которых я ищу ссылки, а затем использовал приведенный ниже локатор XPath для их получения.

//b[.='Account and payment']//ancestor::div[1]//a[@class='ocpArticleLink']

Получает заголовок "Учетная запись и оплата", находит контейнер DIV (он содержит все ссылки для этого заголовка), а затем находит все ссылки (кроме ссылки БОЛЬШЕ).

Это должно дать вам то, о чем вы просили. Вы можете поместить это в функцию, передать заголовок в качестве параметра и вернуть коллекцию ссылок. Нечто подобное ниже ...

def get_links(heading)
    return driver.find_elements_by_xpath("//b[.='" + heading + "']//ancestor::div[1]//a[@class='ocpArticleLink']")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...