我正在编写一个脚本,用于从基于拍卖的服务中收集所有拍卖。 我想通过一直出现错误来获取所有带有 selenium xpath 的模板。我已经设法使用 xpath 从页面下载拍卖说明,但我无法提取它们的 href。 我同时使用 xpath finder(适用于 firefox)和 xpath helper(适用于 chrome),它会显示我的链接。但我无法尊重他们。
下面我展示了我的脚本、我的控制台日志和我想提取的链接。
SCRIPT (part of it)
while next_page_available:
wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.XPATH, "//li[contains(@class, 'nav-btn next-site')]")))
element = driver.find_element_by_xpath("//li[contains(@class, 'nav-btn next-site')]")
if element.is_displayed():
#THIS IS THE PART WHERE IT CRASHES
links = driver.find_elements_by_xpath('//tbody/tr/td[3]/a[1]/@href')
print "LINK: ", links
for link in links:
value = link.get_attribute("content")
items_names.append(value)
count += 1
print "hi"
print count, " val: ", value
element.click()
else:
print "No more pages with auctions"
next_page_available = False
控制台日志:
#########My console log:
InvalidSelectorError: The result of the xpath expression '//tbody/tr/td[3]/a[1]/@href' is: [object XrayWrapper [object Attr]]. It should be an element.
以及我想要访问的拍卖链接:
<a href="http://ms.allegro.pl/template/edit/563656/" title="Buty robocze, WODOODPORNE TW400 Panoply roz.43" class=" xh-highlight">Buty robocze, WODOODPORNE TW400 Panoply roz.43</a>
感谢您的帮助, 最良好的祝愿
最佳答案
解决方案:
我找到了一份文档,我可以提取一个属性。
您所要做的就是从您请求的项目的正文中取出一个属性。
在我的特殊情况下,我正在寻找 href(下面的示例)。
如果您要查找链接的标题,只需键入 get_attribute("type")
一切都会顺利运行。
links = driver.find_elements_by_xpath("//a[contains(@href,'http://ms.allegro.pl/template/edit/')]")
for link in links:
value = link.get_attribute("href")
感谢您的回复。 最良好的祝愿
关于python selenium xpath 错误 [object XrayWrapper [object Attr]],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28983571/