我编写了一个简单的脚本来从某个网站提取数据。脚本按预期工作,但我对输出格式不满意。
这是我的代码:
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: Scraped from <200 http://example.com/tag/1/article_name> {'title': [u'\xa0"\u0412\u041e\u041e\u0411\u0429\u0415-\u0422\u041e \u0421\u0412\u041e\u0411\u041e\u0414\u0410 \u0417\u0410\u041a\u0410\u041d\u0427\u0418\u0412\u0410\u0415\u0422\u0421\u042f"']}
我认为我需要使用自定义的ItemLoader类,但我不知道如何操作。需要您的帮助。
简短版: 我需要将Scrapy爬取的unicode文本转换为utf-8。
scrapy crawl article -o file.json
,并且我在json文件中看到相同的输出。必须承认我是Scrapy的新手,所以我欢迎任何批评) - GriMel[u'String']
- jfs