for循环生成非法表达式错误
问题描述:
当我尝试使用迭代如下时,我得到非法表达式错误。for循环生成非法表达式错误
下面的代码:
from selenium import webdriver
url='https://search.newyorkfed.org/fomc-docs/search?advanced_search=true&fomc_document_type=minutes&text=&search_precision=All+Words&from_month=3&from_year=1951&to_month=4&to_year=2017&sort=Relevance&Search=Search'
driver = webdriver.Firefox()
driver.get(url) time.sleep(5)
htmlSource = driver.page_source time.sleep(5)
for i in driver.find_elements_by_xpath('//*[@id="content"]/p[%s]/strong/a'%i):
print(i.get_attribute('href'))
答
在你XPath
表达i
还没有确定,所以你不能使用它。反正i in driver.find_elements_...()
应返回WebElement
,所以是没有意义的XPath
使用它,我不知道究竟为什么你使用p[%s]
,但如果你想只是为了获得“结果”的所有链接,请尝试:
for link in driver.find_elements_by_xpath('//strong/a'):
print(link.get_attribute('href'))
+0
好吧,这有帮助。谢谢。我想我过度思考。 – lpt
你能澄清你到底想干什么吗?同时编辑你的问题,使其更易读 – Andersson
Andersson-所以基本上我试图捕获页面中的所有href。对于无迭代的单个请求,它可以正常工作。但是当我使用迭代时,它会产生错误。我也在上面格式化了代码。 – lpt
你认为这个'p [%s]'应该是什么?也许你想用别的东西代替'%i'?这是一个简单的错字吗? – Andersson