类型错误:'float'对象不可迭代。我正在使用Scrapy和Python 3.5。

3
我有一个与我的scrapyspider有关的问题,它使用以下代码:
class MySpider(BaseSpider):
    name = "craig"
    allowed_domains = ["craigslist.org"]
    start_urls = ["http://sfbay.craigslist.org/search/npo"]

    def parse(self, response):
    hxs = HtmlXPathSelector(response)
    titles = hxs.xpath("//span[@class='pl']")
    items = []
    for i in titles:
        item = CraigslistSampleItem()
        item["title"] = i.select("a/text()").extract()
        item["link"] = i.select("a/@href").extract()
        items.append(item)
    return items

这是我的items.py文件。
from scrapy.item import Item, Field

class CraigslistSampleItem(Item):
    title = Field()
    link = Field()

当我使用 scrapy crawl craig 命令运行爬虫时,出现以下错误:
TypeError: 'float' object is not iterable
2017-03-07 10:13:44 [scrapy.core.scraper] ERROR: Error downloading <GET http://sfbay.craigslist.org/search/npo>
TypeError: 'float' object is not iterable

如何解决这个问题?谢谢。

请修正您的缩进。不清楚哪些属于哪个部分。 - DYZ
我不确定它是如何产生那个错误的,但你是不是想用 for i in titles 而不是 range(titles) - Ry-
是的,在我发布到这里之前,我尝试了那个方法,但我仍然遇到了同样的错误.. :( - Alfan Dinda Rahmawan
1个回答

8
我在使用conda安装scrapy之后,遇到了类似的错误,导致我得到了scrapy版本1.1和twisted版本17.1.0。我认为scrapy版本小于1.3.2和twisted版本17.x之间存在不兼容性。我通过将twisted降级到16.x或升级scrapy到版本1.3.3来解决这个问题。请注意保留原有的HTML标签。

我在这里提交了一个 Github 问题,以防人们有兴趣:https://github.com/scrapy/scrapy/issues/2648 - nicolaskruchten

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接