SyntaxError: EOF while scanning triple-quoted string literal within XPath using Selenium and ChromeDriver?
SyntaxError: EOF while scanning triple-quoted string literal within XPath using Selenium and ChromeDriver?
我正在尝试从 OpenSea 配置文件中收集最近的 NFT 交易 activity。由于某种原因,我收到 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
似乎 CLASS_NAME
中的三重引号是不必要的或拼写错误。然而,.
要识别元素,您可以使用以下任一方法 :
使用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']")
问题是您在这一行中有 ''''
:
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 抱怨它在你没有关闭字符串的情况下到达了程序的末尾。
我不知道你想用连续的四个撇号做什么,所以我不能告诉你如何解决它,但这就是问题所在。
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 中很特殊。
我正在尝试从 OpenSea 配置文件中收集最近的 NFT 交易 activity。由于某种原因,我收到 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
似乎 CLASS_NAME
中的三重引号是不必要的或拼写错误。然而,
要识别元素,您可以使用以下任一方法
使用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']")
问题是您在这一行中有 ''''
:
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 抱怨它在你没有关闭字符串的情况下到达了程序的末尾。
我不知道你想用连续的四个撇号做什么,所以我不能告诉你如何解决它,但这就是问题所在。
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 中很特殊。