繁体   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