簡體   English   中英

cra草不接受蜘蛛中的日語字符

[英]Scrapy not accepting japanese characters in spider

這是我要抓取的網站源代碼的一部分。

<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.

我想要做的就是用日語匹配該字符串,並從上述源代碼中提到的同級標記中獲取文本。

而且奇怪的事實是它昨天運行並收集了數據。 現在,它正在返回錯誤。

我需要做些什么來包含日語字符集嗎?

嘗試用u追加字符串

'Company_Name':response.xpath(u'//*[@id="anchor_realtorOutline"]/div[1]/table/tbody/tr/th[contains(text(), "會社名")]/following-sibling::td/p[1]/ruby/text()').extract(),

您的xpath不起作用的原因是因為tbody 您必須將其刪除並檢查是否獲得所需的結果。

您可以在草率的文檔中閱讀: http ://doc.scrapy.org/en/0.14/topics/firefox.html

尤其是Firefox以向表添加<tbody>元素而聞名。 另一方面,Scrapy不會修改原始頁面的HTML,因此,如果在XPath表達式中使用<tbody> ,則將無法提取任何數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM