[英]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.