는 코드는 다음과 같습니다 내가 사용하여 검색하는 아마존에서는 토네이도 웹 응용 프로그램입니다. 순간에 나는 단지 하나의 이러한 클래스(하나 webdriver)인스턴스화됩니다. 내가 원할 수 있습 풀들이 미래에(예가 있다고 알고 있습니다 selenum 그리드,하지만 질문 드립니다.) 나의 질문은 이유입니다__init__분명히 실행되지 않습니까? 는 이유는 무엇일까요 attributeError 에 대한 액세스 자체입니다.큐 var 는 명확하게 정의에__init__?
import asyncio
import uuid
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.expected_conditions import presence_of_element_located
from selenium.common.exceptions import NoSuchElementException
class Searcher:
def __init___(self):
self.driver = webdriver.Firefox(executable_path="/home/felix/project/geckodriver")
self.wait = WebDriverWait(self.driver, 10)
self.driver.get("https://amazon.com/")
self.queue = []
async def _search(self, query):
self.driver.find_element(By.ID, "twotabsearchtextbox").send_keys("pixel" + Keys.RETURN)
self.wait.until(presence_of_element_located((By.XPATH,
"//div[contains(@class, 'sg-col-inner')]/div[contains(@class, 'a-section')]"
"/div[contains(@class, 'a-section')]")))
el = self.driver.find_elements(By.XPATH,
"//div[contains(@class, 'a-section')]/div[h2][not(contains(.,'Sponsored'))]"
"[contains(@class, 'a-section')]/..")
out=[]
for e in range(len(el)):
try:
out+=[{"price": el[e].find_element(By.XPATH, ".//span[contains(@class, 'a-price-whole')]").text + "." +
el[e].find_element(By.XPATH, ".//span[contains(@class, 'a-price-fraction')]").text,
"title": el[e].find_element(By.XPATH, ".//h2").text}]
except NoSuchElementException:
pass
return out
def search(self, query):
_id = uuid.uuid4()
self.queue.append(_id)
async def help(self):
while 1:
if _id == self.queue[0]:
return await self._search(query)
await asyncio.sleep(0.5)
res = help(self)
self.queue.pop()
return res
a = Searcher()
print(asyncio.run(a.search("test")))
여기에 오류가:
Traceback (most recent call last):
File "/home/felix/project/search.py", line 49, in <module>
print(asyncio.run(a.search("test")))
File "/home/felix/project/search.py", line 38, in search
self.queue.append(_id)
AttributeError: 'Searcher' object has no attribute 'queue'