【问题标题】:How to retain special characters like $, £ while extracting text from a website?如何在从网站中提取文本时保留 $、£ 等特殊字符?
【发布时间】:2020-08-06 15:24:58
【问题描述】:

我正在使用scrapy 来抓取示例网站。这是网页 - booksquotes。为了提取数据,我使用 xpath 选择器。特别是为了获取特定书籍的价格,我使用以下 xpath - //*[@id="default"]/div[1]/div/div/div/section/div[2]/ol/li[1]/article/div[2]/p[1]/text()

现在,当我提取价格时,省略了 £ 符号,因为我使用了 .get()。我假设.get() 返回Unicode,因此返回一个字符\u00a3。我阅读了此similar question 的答案,但由于示例使用extract 而不是get,因此无法理解。我还尝试使用 cmets 中提到的.encode(),但返回的是空 JSON。请指教。

【问题讨论】:

  • 您正在抓取的网站是否使用不同的编码,并且可能声称它使用的是 UTF-8?您下拉的实际字节数是多少? (可能只是一个小的十六进制转储,在有问题的字符串周围有几个上下文字符就足够了。)另见meta.stackoverflow.com/questions/379403/…
  • “这个类似的问题”是什么?请给个链接?
  • @tripleee 编辑了问题以包含类似的问题。
  • 再次,请显示有问题的数据和足够的代码,以查看您如何尝试保存它,最好简化为minimal reproducible example。

标签: python scrapy


【解决方案1】:

把它放在你的蜘蛛中的start_urls下面

custom_settings = { 'FEED_EXPORT_ENCODING' : 'utf-8' } 

JSON 不会自动编码为 utf-8,你必须设置这个。

【讨论】:

    猜你喜欢
    • 2020-05-23
    • 2011-05-08
    • 1970-01-01
    • 2023-01-12
    • 2014-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多