我寫了一個簡單的腳本來從某個站點提取數據。按預期工作腳本,但我不會和輸出格式嬉戲
這裏是我的代碼Scrapy從unicode轉換爲utf-8
class ArticleSpider(Spider):
name = "article"
allowed_domains = ["example.com"]
start_urls = (
"http://example.com/tag/1/page/1"
)
def parse(self, response):
next_selector = response.xpath('//a[@class="next"]/@href')
url = next_selector[1].extract()
# url is like "tag/1/page/2"
yield Request(urlparse.urljoin("http://example.com", url))
item_selector = response.xpath('//h3/a/@href')
for url in item_selector.extract():
yield Request(urlparse.urljoin("http://example.com", url),
callback=self.parse_article)
def parse_article(self, response):
item = ItemLoader(item=Article(), response=response)
# here i extract title of every article
item.add_xpath('title', '//h1[@class="title"]/text()')
return item.load_item()
我不跟輸出嬉戲,是這樣的:
[scrapy] DEBUG:從刮> {'title':[u'\ xa0'\ u0412 \ u041e \ u041e \ u0411 \ u0429 \ u0415- \ u0422 \ u041e \ u0421 \ u0412 \ u041e \ u0411 \ u041e \ u0414 \ u0410 \ u0417 \ u0410 \ u0410 \ u0410 \ u0441 \ u0415 \ u0422 \ u0421 \ u042f「']}
我想我需要使用自定義ItemLoader類,但我不知道如何。需要你的幫助。
TL; DR我需要的文本,通過Scrapy刮從的unicode轉換爲UTF-8
這是重寫此方法改變這種行爲只是scrapy打印Unicode字符(西里爾文)。你要如何保存你的被刮掉的物品?一旦你保存了它,你會怎麼做? Unicode問題通常取決於您使用什麼軟件查看unicode數據。 – Steve
後來我將它保存到postgresql數據庫(使用管道),但現在我運行它作爲'scrapy抓取文章-o file.json',我在json文件中看到相同的輸出。不得不承認,我是Scrapy的新手,所以我很感謝任何批評者) – GriMel
相關:[Python字符串打印爲'[u'String']'](http://stackoverflow.com/a/36891685/4279) – jfs