Hier ist ein Teil des Quellcodes der Website, die ich versuche zu kratzen.Scrapy akzeptiert keine japanischen Zeichen in Spider
<th>会社名</th>
<td colspan="2">
<p class="realtorName">
<ruby>株式会社エリア・エステート 川崎店</ruby>
</p>
</td>
Und dies ist nur ein Test Spinne zu sehen, ob scrapy wird, um alle Daten zu holen
# -*- 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(),
}
Die ‚TEL‘ und ‚FAX‘ Felder würden Daten zurückgeben aber scrapy wirft einen Fehler für das Feld ' Company_Name‘
Fehler:
All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters.
, was ich tun wollte, dass die Zeichenfolge übereinstimmen in der japanischen und o btain den Text aus dem Geschwister-Tag wie im obigen Quellcode erwähnt.
Und die seltsame Tatsache ist, dass es gestern lief und Daten schabte. Jetzt gibt es Fehler zurück.
Muss ich etwas tun, um das japanische Zeichenset einzubinden?
Per Umair den Code, das ist die ganze XPath zu den Skripten Unicode konvertieren. , d. H. Anhängen von "u", bevor der XPath funktioniert. Aber das ist keine gute Lösung. Der Fehler scheint auf dem Python-Ende zu liegen. Gibt es keine Möglichkeit, dem Skript selbst eine japanische Kodierung hinzuzufügen, so dass es japanische Zeichen unterstützt, ohne es wie Umair in utf-8 zu dekodieren. –