Python:如何从特定标题下的同一页面的多重链接中提取表格

时间:2018-05-08 11:55:26

标签: python pandas selenium-webdriver

我可以通过使用

提供直接链接从单个页面中提取所有表格( 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 :(得分:0)

这些标题都不包含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']")