ここは私が掻き取ろうとしているウェブサイトのソースコードの一部です。スパイダーで日本語の文字を受け入れていない治療は
<th>会社名</th>
<td colspan="2">
<p class="realtorName">
<ruby>株式会社エリア・エステート 川崎店</ruby>
</p>
</td>
そして、これがscrapyは、任意のデータ
# -*- coding: utf-8 -*-
import scrapy
class TestSpider(scrapy.Spider):
name = "test"
allowed_domains = ["homes.co.jp"]
start_urls = ['http://www.homes.co.jp/realtor/mid-122457hNYEJwIO7kDs/']
def parse(self, response):
yield{
'FAX':response.xpath('//*[@id="anchor_realtorOutline"]/div[1]/table/tbody/tr/th[contains(text(), "FAX")]/following-sibling::td/text()').extract(),
'Company_Name':response.xpath('//*[@id="anchor_realtorOutline"]/div[1]/table/tbody/tr/th[contains(text(), "会社名")]/following-sibling::td/p[1]/ruby/text()').extract(),
'TEl':response.xpath('//*[@id="anchor_realtorOutline"]/div[1]/table/tbody/tr/th[contains(text(), "TEL")]/following-sibling::td/text()').extract(),
}
「TEL」と「FAX」のフィールドがデータを返すだろうが、scrapyがフィールド」のエラーがスローをフェッチしているかどうかを確認するだけのテストクモですCOMPANY_NAME」
エラー:
All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters.
私がやりたいことは、日本とOで、その文字列と一致しました上記のソースコードで述べたように、兄弟タグからテキストを取得します。
そして、奇妙な事実は、それが昨日走ってデータを削ったということです。これでエラーが返されます。
日本語の文字セットを含めるには何かする必要がありますか?
、スクリプトUnicodeに全体XPathを変換しています。 xpathが動作する前に 'u'を追加します。しかし、それは良い解決策ではありません。 エラーはPythonの終わりのようです。 日本語のエンコーディングをスクリプト自体に追加する方法がないので、Umairが語ったように日本語の文字をutf-8にデコードせずにサポートします。 –