2

で書かれた次の単純な Web スクレーパーがありますScrapy

#!/usr/bin/env python
# -*- coding: latin-1 -*-

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

class MySpiderTest(BaseSpider):
    name = 'MySpiderTest'
    allowed_domains = ["boliga.dk"]
    start_urls = ["http://www.boliga.dk/bbrinfo/3B71489C-AEA0-44CA-A0B2-7BD909B35618",]

    def parse(self, response):
        hxs = HtmlXPathSelector(response)
        item = bbrItem()
        print hxs.select("id('unitControl')/div[2]/table/tbody/tr[td//text()[contains(.,'Antal Badeværelser')]]/td[2]/text()").extract()

しかし、スパイダーを実行すると、次の構文エラーが発生します。

SyntaxError: Non-ASCII character '\xe6' in file... on line 32, but no encoding declared

のためæxpath。xpath は で機能しXpath CheckerていFirefoxます。を URL エンコードしてみましæたが、うまくいきませんでした。私は何が欠けていますか?

ありがとう!

更新:コードの先頭にエンコーディング宣言を追加しました (Latin-1 はデンマーク文字をサポートする必要があります)。

4

3 に答える 3

0
SyntaxError: Non-ASCII character ‘\xe2′ in file … on line 40, 

しかし、デコードは宣言されていません…</p>

これは、コピー時にアポストロフィ(') などの標準文字が引用符 (`)などの非標準文字に置き換えられることが原因です。

PDFからコピーしたテキストを編集してみてください。

于 2014-01-10T06:27:06.100 に答える