2017-07-29 83 views
-1

我想從ebay等網站收集信息(名稱)並將其附加到列表中。但我有一個問題。 我的代碼:如何從非標準類中收集信息。 (Selenium,Python)

for a in driver.find_elements_by_id("scroll"): 
    name = a.find_element(By.CLASS_NAME(".market-name.market-link")).getText() 
    mylist.append(name) 
print(mylist) 

問題:

name = a.find_element(By.CLASS_NAME(".market-name.market-link")).getText() TypeError: 'str' object is not callable

的哪些錯誤?

HTML代碼(我已經刪除了不必要的東西,像picters等):

<div class="featured-item col-sxs-12 col-xs-6 col-sm-6 col-md-4 col-lg-3 center-block app_730_2 item_17511241 has-wear scanned"> 
    <div> 
     <a class="market-name market-link" href="=shop_view_item&amp;item=17511241"> 
     Happy 
     </a> 
     <div class="item-amount" onclick="showGraphFromId(17511241)"> 
     $0.04 
     </div> 
     <button class="btn btn-orange" type="button" onclick="addToCart(17511241, 730, 4)"> 
     Add to Cart 
     </button> 
    </div> 
</div> 
+2

的[收集從具有同文類(硒,Python)的許多元素的信息(可能的複製https://stackoverflow.com/questions/45377825/collect-information-from-many-elements-with-identic -class-selenium-python) – DebanjanB

回答

0
  1. 您使用不正確的通過。 ".market-name.market-link"是Css選擇器,而不是類名稱。 所以你可以通過將By.CLASS_NAME更改爲By.CSS_SELECTOR
  2. By.CLASS_NAMEfind_element的第一個參數,它不是一種方法,它是一個值。第二個參數是一個表達式。

查看下面的代碼。

try: 
    name = WebDriverWait(browser, 15).until(
     EC.presence_of_element_located((By.CSS_SELECTOR, ".market-name.market-link")) 
    ).text 
except: 
    print("Can't find the text.") 
+0

是什麼意思: selenium.common.exceptions.NoSuchElementException:消息:無法找到元素:.market-name.market-link? –

+0

@NurislomTuraev這意味着此刻頁面上沒有元素。你可以添加HTML到你的問題? – Buaban

+0

我編輯代碼,請檢查它 –