【发布时间】:2022-01-21 08:45:53
【问题描述】:
同学们,
我正在抓取一些下载链接。在目标网站上,每个目标下载链接有时会出现在文本'Application Proof (1st submit)'之后,有时会出现在文本'PHIP(第一次修订证明)'之后。我当前的代码只抓取“申请证明(第一次提交)”之后的链接:
all_proofs = driver.find_elements_by_xpath("//span[contains(text(),'Application Proof (1st submission)')]/following-sibling::a[contains(.,'Full Version')]")
有没有什么方法可以在这个 XPath 中使用 OR 逻辑在这两种情况下抓取并获得一个链接列表,根据它们在网站源代码中出现的顺序?逻辑大概是:
all_proofs = driver.find_elements_by_xpath("//span[contains(text(),'Application Proof (1st submission)' OR 'PHIP (1st revised proof)')]/following-sibling::a[contains(.,'Full Version')]")
不幸的是,没有其他解决方法可以代替这个逻辑,因为:
- 我不能简单地抓取所有包含“完整版”的下载链接,因为其中一些链接不符合我的标准,只有那些遵循文本“申请证明(第一次提交)”的链接或 'PHIP(第一次修订证明)' 做。
- 我无法抓取“申请证明(第一次提交)”文本后面的一个链接列表,然后抓取“PHIP”后面的另一个链接列表 (第一次修订证明)”,最后将它们连接在一起,因为我需要此列表与网站源代码中的链接顺序完全相同。
非常感谢您的帮助!
【问题讨论】:
-
如果我的回答解决了您的问题,请告诉我
标签: python selenium web-scraping xpath