4
私はWindows 7とscrappy interactive console(IPythonベース)で作業しています。Scrappyのメソッドre()はUnicode文字列では機能しません
私は英語の手紙のタイトルといくつかのサイトをつかむ場合、私はチュートリアル
にステップTrying Selectors in the Shellをやっている、すべてのチュートリアルのように、大丈夫です:
In [5]: hxs.select('//title/text()').re('(\w+):')`
Out[5]: [u'Computers', u'Programming', u'Languages', u'Python']`
しかし、私は非でサイトをつかむ場合 - 英語の文字(ロシア語、ユニコード)、再()メソッドは何も返しません:タイトルにテキストがあり
In [25]: hxs.select('//title/text()').re('(\w+)')
Out[25]: []
を、それが空ではありません。
In [24]: hxs.select('//title/text()').extract()
Out[24]: [u'\u041b\u043e\u043a\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043f\u043e\u0438\u0441\u043a \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u043e\u0432']
助けてください、私はunicode記号とのrerapy()を使用できますか?
は、コンパイル済みのregeexは細かい作業、ありがとうございます! –
しかし、re.UNICODEフラグdoenstがregexにデフォルトで適用される理由はありますか? –
私はScrapyがそのフラグを内部的に設定することを期待していましたが、ソースコードを見ると[そうでないことを示しています](https://github.com/scrapy/scrapy/blob/0.15.1/scrapy/utils/misc.py #L69)。 –