1

こんにちは、Python 言語に基づいたスクレイピー フレームワークでスパイダーを作成しています。私が試している次のコードですが、予期しないインデントが表示されますが、そのようなものは見つかりませんでした。私はまったく新しいので、これはPythonでの最初のスパイダーです。私を助けてください

from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector

from first_sample.items import FirstSampleItem

class FirstSpider(BaseSpider):
    name = "first"
    allowed_domains = ["reviews42.com"]
    start_urls = ["http://www.reviews42.com/mobiles/category/"]


    def parse(self, response):
        hxs = HtmlXPathSelector(response)
        apps = hxs.select("//*[@id=\"col1\"]/div[@class=\"clear left summary-block relative\"]")
        count = 0
        items = []

    for app in apps:
        item = FirstSampleItem()
        item['title'] = appa.select("//div[@class=\"padding10 relative\"]/div[@class=\"thin-heading font700 black marginTop5\"]/a/text()")[count].extract()
        items.append(item)
        count += 1
    return items

IndentationError: unindent は外側のインデント レベルと一致しません

4

1 に答える 1

4

関数内のループとreturnステートメントparseが適切にインデントされていません。


def parse(self, response):
    hxs = HtmlXPathSelector(response)
    apps = hxs.select("//*[@id=\"col1\"]/div[@class=\"clear left summary-block relative\"]")
    count = 0
    items = []

    for app in apps:

        item = FirstSampleItem()
        item['title'] = appa.select("//div[@class=\"padding10 relative\"]/div[@class=\"thin-heading font700 black marginTop5\"]/a/text()")[count].extract()

        items.append(item)
        count += 1

    return items

Python をプログラミングするときは、スペースとタブを混在させないように注意してください。タブは単一の文字であり、単一のスペースと同じではありません。

于 2013-07-09T07:44:36.393 に答える