同學們,
我正在抓取一些下載鏈接。在目標網站上,每個目標下載鏈接有時會出現在文本“申請證明(第一次提交)”之后,有時會出現在文本“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(第一次修訂證明)”的鏈接' 做。
- 我不能刮鏈接一個串列下面的“應用程式證明(1日提交)”文本,然后刮鏈接另一個串列下面的“PHIP(1日修訂證明)”,最后加入他們在一起,因為我需要這個名單與網站源代碼中出現的鏈接的順序完全相同。
感謝您的幫助!
uj5u.com熱心網友回復:
是的,您可以OR在 XPath 中使用運算子。
您的 XPath 運算式可能是這樣的:
all_proofs = driver.find_elements_by_xpath("//span[contains(text(),'Application Proof (1st submission)') or contains(text(),'PHIP (1st revised proof)')]/following-sibling::a[contains(.,'Full Version')]")
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/417660.html
標籤:
