Python:如何在特定标题下从同一页面的多个链接中提取表
通过使用提供直接链接,我可以从单个页面中提取所有表(office 365和office 2016差异)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
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的期望是,用户提出问题时不仅要进行研究以回答他们自己的问题,还要分享研究、代码尝试和结果。这表明你花了时间来帮助自己,它使我们避免重复显而易见的答案,最重要的是,它帮助你得到一个更具体和相关的答案!另见: