for products in self.br.find_elements_by_xpath("//*[@class='image']/a"):
self.urls.append(products.get_attribute("href"))
此代码将查找该类的所有href链接。
我的问题是网页有不断变化的来源,有时可能是//*[@class='image']/a
但有时候//*[@class='newPrice']/a
。如果找不到第一个xpath选项,如何更改for
循环以使用另一个表达式?
答案 0 :(得分:4)
首先将输出存储在变量中:
links = self.br.find_elements_by_xpath("//*[@class='image']/a")
if not links:
links = self.br.find_elements_by_xpath("//*[@class='newPrice']/a")
for products in links:
self.urls.append(products.get_attribute("href"))
答案 1 :(得分:1)
不等同于后备,但您可以使用OR语法:
for products in self.br.find_elements_by_xpath(
"//*[@class='image']/a | //*[@class='newPrice']/a"):
self.urls.append(products.get_attribute("href"))