我写了以下代码来从一个站点删除数据。在
import scrapy
from porua_scrapper.items import Category
from porua_scrapper.config import SITE_URL
class CategoriesSpider(scrapy.Spider):
name = "categories"
start_urls = []
for I in range(2):
url = SITE_URL + "book/categories?page=" + str(I+1)
start_urls.append(url)
print(start_urls)
def parse(self, response):
# print(response.css('ul.categoryList li div.pFIrstCatCaroItem a').extract_first())
for category in response.css('ul.categoryList li'):
categoryObj = Category()
categoryObj['name'] = category.css('div.bookSubjectCaption h2::text').extract_first()
categoryObj['url'] = category.css('a::attr(href)').extract_first()
yield categoryObj
当我运行命令scrapy crawl categories -o categories.json
时,它将创建一个categories.json包含所需输出格式的文件。但问题是我的一些内容包含bengali
文本。因此,在生成的输出文件中,我得到的响应如下:
{"url": "/book/category/271/\u09a8\u09be\u099f\u0995", "name": "\u09a8\u09be\u099f\u0995"}
我应该如何编码utf-8
中的内容?由于我是一个新来的scrapy我没能根据我的情况找到一个合适的解决方案。在
提前谢谢!在
首先,
{"url": "/book/category/271/\u09a8\u09be\u099f\u0995", "name": "\u09a8\u09be\u099f\u0995"}
是有效的JSON数据任何解释这些数据的程序都应该理解(即解码)字符。Python
json
模块调用此ensure_ascii:这是Scrapy feed exporter默认用于JSON输出的内容。在
但是如果您需要输出JSON文件来使用其他编码,比如UTF-8,那么可以使用Scrapy的^{} setting 。在
^{pr2}$相关问题 更多 >
编程相关推荐