2015-11-21 182 views
0

這裏是我的代碼現在:的Python Crawling-類型錯誤:「詮釋」對象不是可迭代

front_deeplink = ("http://www.jsox.de") 
Spider = 20 
Region = 7236 


def trade_spider(max_pages): 
for reg in Region: 
    page = 0 
    while page <= max_pages: 
     page += 1 
     r = requests.get("http://www.jsox.de/affiliatesearch.aspx?&regionid=" + str(reg) + "&pid=" + str(page)) 
     soup = BeautifulSoup(r.content) 

     g_data = soup.find_all("div", {"class": "gridHeadOuter productInfoOuter"}) 

     for item in g_data: 
      Header = item.find_all("div", {"class": "offerInto"}) 
      Header_final = (Header[0].contents[0].text.strip()) 
      price = item.find_all("strong", {"class": "priceBig priceBlock"}) 
      Price_final = (price[0].text.strip()) 
      Deeplink = item.find_all("a") 
      for t in set(t.get("href") for t in Deeplink):   
       Deeplink_final = (str(front_deeplink) + t) 

      print("Header: " + Header_final + " | " + "Price: " + Price_final[:-1] + " | " + "Deeplink: " + Deeplink_final) 

trade_spider(int(Spider)) 

不過,我不斷收到錯誤消息:

for reg in Region: 
TypeError: 'int' object is not iterable 
當我嘗試

和運行這個。

我在做什麼錯?

任何人都可以幫助我嗎?任何反饋意見。

+0

你已經定義了'Region = 7236',它是一個'int',所以就像錯誤所說的那樣,你不能迭代它。 – agold

+0

你想做什麼?你應該怎麼處理數字7236? –

+0

7236簡化爲一個區域的數字,例如羅馬 –

回答

1

使用範圍()xrange(),它接收一個int併產生一個迭代。

3

在你的代碼有這樣的聲明:

Region = 7236 

然後,你試試這樣做:

for reg in Region: 

顯然,Region只是一個數字,你不能迭代就像你會說,遍歷一個列表。使用for來遍歷列表或其他可迭代對象 - 數字根本無法迭代。

相關問題