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

Posted

技术标签:

【中文标题】Python Crawling-TypeError:\'int\'对象不可迭代【英文标题】:Python Crawling- TypeError: 'int' object is not iterablePython Crawling-TypeError:'int'对象不可迭代 【发布时间】:2016-02-24 01:08:16 【问题描述】:

这是我现在的代码:

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

当我尝试运行它时。

我做错了什么?

谁能帮我解决这个问题?感谢您提供任何反馈。

【问题讨论】:

你已经定义了Region = 7236,这是一个int,所以,就像错误所说的,你不能迭代它。 你想做什么?你应该用7236这个号码做什么? 7236 只是一个地区的数字,例如罗马 好的,那么如果您知道 7236Region 的值,那么您希望用for reg in 7236 做什么? 不知道数字是不可迭代的。 【参考方案1】:

在你的代码中你有这个声明:

Region = 7236

然后,你尝试这样做:

for reg in Region:

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

【讨论】:

【参考方案2】:

使用 range()xrange(),它们接收一个 int 并产生一个可迭代对象。

【讨论】:

以上是关于Python Crawling-TypeError:'int'对象不可迭代的主要内容,如果未能解决你的问题,请参考以下文章

001--python全栈--基础知识--python安装

Python代写,Python作业代写,代写Python,代做Python

Python开发

Python,python,python

Python 介绍

Python学习之认识python