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