2017-04-23 7 views
0

以下のように繰り返しを使用しようとすると、不正な式エラーが発生します。以下forループが不正な式エラーを生成します

コード:あなたはそれを使用することはできませんのでごXPath表現i

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')) 
+0

正確に何をしたいのかを明確にすることはできますか?また、あなたの質問を編集してより読みやすくしてください。 – Andersson

+0

Andersson-基本的に私はページからすべてのhrefをキャプチャしようとしています。繰り返しのない単一の要求に対してはうまく動作します。しかし、私は反復を使用すると、エラーを生成します。上記のコードも書式化しました。 – lpt

+0

これは 'p [%s]'と思われますか? '%i'の代わりに何か他のものを使いたいのでしょうか?単純なタイプミスですか? – Andersson

答えて

0

はまだ定義されていません。とにかくi in driver.find_elements_...()は、あなたがp[%s]を使用する理由私は正確に知らないXPath

でそれを使用しては意味がないので、WebElementを返しますが、あなたは「結果」内のすべてのリンクを取得するにはちょうどたい場合は、試してみてください:

for link in driver.find_elements_by_xpath('//strong/a'): 
    print(link.get_attribute('href')) 
+0

これは助けになりました。ありがとう。私は思った以上に思う。 – lpt

関連する問題