我正在嘗試從 OpenSea 組態檔中收集最近的 NFT 交易活動。由于某種原因,我收到了 SyntaxError,但我無法弄清楚是什么導致了錯誤。我已經對我的所有代碼進行了三次檢查,但不知道錯誤的來源。任何建議將不勝感激。我在 MacOS 上。
from selenium import webdriver
from selenium.webdriver.common.by import By
PATH = ('/Users/Chris/Desktop/chromedriver')
driver = webdriver.Chrome(PATH)
driver.get("https://opensea.io/GaryVee")
action = driver.find_element(By.CLASS_NAME, 'Blockreact__Block-sc-1xf18x6-0 Flexreact__Flex-sc-1twd32i-0 ''''FlexColumnreact__FlexColumn-sc-1wwz3hp-0 eaQZLu jYqxGr ksFzlZ')
for action in action:
nft_name = action.find_element(By.XPATH, './/*[@id="main"]/div/div/div[3]/div/div[3]/div[2]/div/div[2]/div[''1]/button/div/div[2]/div/div/div/div[2]/span[1]/div/div/a').text
nft_id = action.find_element(By.XPATH, './/*[@id="main"]/div/div/div[3]/div/div[3]/div[2]/div/div[2]/div[''1]/button/div/div[2]/div/div/div/div[2]/span[2]/a/div').text
price_eth = action.find_element(By.XPATH, './/*[@id="main"]/div/div/div[3]/div/div[3]/div[2]/div/div[2]/div[''1]/button/div/div[3]/div/div[1]/div/div[2]/text()').text
price_usd = action.find_element(By.XPATH, './/*[@id="main"]/div/div/div[3]/div/div[3]/div[2]/div/div[2]/div[''1]/button/div/div[3]/div/div[2]/span/div/div').text
sending_user = action.find_element(By.XPATH, './/*[@id="main"]/div/div/div[3]/div/div[3]/div[2]/div/div[2]/div[''1]/button/div/div[5]/div/a/span').text
recieving_user = action.find_element(By.XPATH, './/*[@id="main"]/div/div/div[3]/div/div[3]/div[2]/div/div[''2]/div[1]/button/div/div[6]/div/a/span').text
status = action.find_element(By.XPATH, './/*[@id="main"]/div/div/div[3]/div/div[3]/div[2]/div/div[2]/div[''1]/button/div/div[1]/h6')
這是我的錯誤代碼:
File "/Users/Chris /PycharmProjects/pythonProject/main.py", line 28
status = action.find_element(By.XPATH, './/*[@id="main"]/div/div/div[3]/div/div[3]/div[2]/div/div[2]/div[''1]/button/div/div[1]/h6')
^
SyntaxError: EOF while scanning triple-quoted string literal
Process finished with exit code 1
uj5u.com熱心網友回復:
似乎其中的三引號CLASS_NAME是不必要的或錯字。但是,您不能通過driver.find_element(By.CLASS_NAME, 'classname').
要識別元素,您可以使用以下任一Locator Strategies:
使用css_selector:
action = driver.find_element(By.CSS_SELECTOR, ".Blockreact__Block-sc-1xf18x6-0.Flexreact__Flex-sc-1twd32i-0.FlexColumnreact__FlexColumn-sc-1wwz3hp-0.OpenSeaPagereact__DivContainer-sc-65pnmt-0.dBFmez.jYqxGr.ksFzlZ.iRiGb")使用xpath:
action = driver.find_element(By.XPATH, "//*[@class='Blockreact__Block-sc-1xf18x6-0 Flexreact__Flex-sc-1twd32i-0 FlexColumnreact__FlexColumn-sc-1wwz3hp-0 OpenSeaPagereact__DivContainer-sc-65pnmt-0 dBFmez jYqxGr ksFzlZ iRiGb']")
uj5u.com熱心網友回復:
action = driver.find_element(By.CLASS_NAME, 'Blockreact__Block-sc-1xf18x6-0 Flexreact__Flex-sc-1twd32i-0 ''''FlexColumnreact__FlexColumn-sc-1wwz3hp-0 eaQZLu jYqxGr ksFzlZ')
那行代碼包含一個三引號,它永遠不會終止。
三引號在 Python 中很特殊。
uj5u.com熱心網友回復:
問題是你''''在這一行:
action = driver.find_element(By.CLASS_NAME, 'Blockreact__Block-sc-1xf18x6-0 Flexreact__Flex-sc-1twd32i-0 ''''FlexColumnreact__FlexColumn-sc-1wwz3hp-0 eaQZLu jYqxGr ksFzlZ')
這將關閉您的初始字串文字(以 開頭')并開始一個新的字串文字(以 開頭''')。你永遠不會關閉第二個字串文字,所以你的代碼的其余部分是一個字串,Python 抱怨它在你沒有關閉字串的情況下就到了程式的末尾。
我不知道你想用連續的四個撇號做什么,所以我不能告訴你如何解決它,但這就是問題所在。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/416039.html
標籤:
上一篇:如何呼叫第二個python檔案并使用在第一個檔案中打開的相同瀏覽器執行它
下一篇:日歷沒有回傳正確的時間
