Python Crawling- TypeError:' int'对象不可迭代

时间:2015-11-21 15:55:34

标签: python loops web-crawler iterable

这是我现在的代码:

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

当我尝试运行它时。

我做错了什么?

任何人都可以帮助我吗?任何反馈都表示赞赏。

2 个答案:

答案 0 :(得分:3)

在您的代码中,您有此声明:

Region = 7236

然后,您尝试这样做:

for reg in Region:

显然,Region 只是一个数字,你不能像在迭代列表上那样迭代它。使用for遍历列表或其他可迭代对象 - 数字根本不可迭代。

答案 1 :(得分:1)

使用 range() xrange(),它们会收到一个int并生成一个可迭代的。