2017-03-28 65 views
1

我想製作一個工具來自動運動鞋購買。我正在嘗試在線查看運動鞋的可用性。我是編程新手,這是我的第一個項目。謝謝。Python beautifulsoup 4選擇一個類

def CheckStock(url, model): 
    url = "http://www.adidas.com/us/pureboost-ltd-shoes/S80701.html?pr=product_rr&slot=3" 
    headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'} 
    html = requests.get(url, headers=headers) 
    page = bs4.BeautifulSoup(html.text, "lxml") 
    Sizes = page.select('.size-dropdown-block') 
    Sizes[0].getText() 

我知道該頁面被選中,因爲我使用了命令page.title.string,它顯示了正確的標題。當attepmtng執行大小時,我收到以下錯誤。

Traceback (most recent call last): 
    File "<pyshell#146>", line 1, in <module> 
    x[0].getText() 
IndexError: list index out of range 
+1

該函數適用於我,請求2.13.0,bs4 4.5.3。什麼是'x'? – DyZ

+0

尺寸[0] .getText()。對不起,忽略x是我測試多個代碼的另一個實例。 – johnnnieyy

+0

請向我們展示所有相關的代碼。你如何初始化'x'?究竟是什麼導致了錯誤? – DyZ

回答

0

尺寸是藍色的(這可能是一個函數/方法現在使用不同的名稱) 檢查是否(.size-下拉塊)的源代碼存在。按CTRL + U(大多數瀏覽器)或右鍵單擊>查看頁面源。 它可能是javascript生成的。如果是,你將不得不使用Selenium或其他自動瀏覽器。