我试图访问web数据库中具有不同xpath但非常可预测的href方案的元素中的文本。以下是一些示例:
<a href="/mathscinet/search/mscdoc.html?code=65J22,(35R30,47A52,65J20,65R30,90C30)">
65J22 (35R30 47A52 65J20 65R30 90C30) </a>
在这个例子中,我想提取“65J22(35R30 47A52 65J20 65R30 90C30)”
在这个例子中,我想提取“05C80(05C15)”。我的web scraper不能直接通过xpath进行搜索,因为我想要的元素的xpath在页面之间变化,所以我正在寻找一种更迂回的方法。在
我的主要想法是使用每个href包含“/mathscinet/search”这一事实/mscdoc.html?code=“。Selenium不能直接搜索href,但我正在考虑做类似于C# implementation:
Driver.Instance.FindElement(By.XPath("//a[contains(@href, 'long')]"))
为了将其移植到python,我能想到的唯一类似的方法是使用^{
driver.find_element_by_xpath("//a['/mathscinet/search/mscdoc.html?code=' in @href]").text
根据HTML,您已经分享了@AndreiSuvorkov的答案可能会满足您当前的需求。也许您可以通过以下方法获得更细粒度的并构造优化的xpath:
contains
,而是使用starts-with
@href
属性的?code=
部分您的有效代码块将是:
如果我理解正确的话,你想找到所有元素,它们都有相同的partial href。您可以使用这个:
或者如果要定位一个元素:
^{2}$这将给出一个所有元素的列表。在
相关问题 更多 >
编程相关推荐