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

Python:如何在特定标题下从同一页面的多个链接中提取表,python,pandas,selenium-webdriver,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", head

通过使用提供直接链接,我可以从单个页面中提取所有表(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差异提取表格,然后转到忘记office用户名或密码并提取表格,转到取消订阅并提取表格。
如果没有表,它将继续。

这些标题都不包含
标记,所以我对您在这里指的内容有点困惑

如果是我,我会将字符串作为标题传递,我希望从中提取链接,然后使用下面的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']")

您的问题是如何知道URL是否会指向包含表的页面?@Victor,您可以编写一个包含1个参数(表web元素)的方法,然后只打印它的内容。修改我上一个问题的答案。@Victor,我看到只有第一个链接有一个表。我说得对吗?请看:SO的期望是,用户提出问题时不仅要进行研究以回答他们自己的问题,还要分享研究、代码尝试和结果。这表明你花了时间来帮助自己,它使我们避免重复显而易见的答案,最重要的是,它帮助你得到一个更具体和相关的答案!另见: