我得到 (eval):1: invalid Unicode codepoint error while trying to scrape instagram

I am getting (eval):1: invalid Unicode codepoint error while trying to scrape instagram

我正在尝试从 Instagram 抓取数据。这是我的代码

require 'open-uri'
require 'nokogiri'
require 'json'
require "unicode/emoji"

def get_html
    url = 'https://www.instagram.com/muriithi_kabogo/'
    html = open(url)

end

def pass_data
    html = get_html
    doc = Nokogiri::HTML(html)
end

def get_data
    profiles = []
    body  = pass_data.at('body')
    script = body.at('script').text
    myText = script
    json_object_data = eval(myText)

end


get_data()

当我尝试将文本更改为 json 格式时,出现错误:

(eval):1: invalid Unicode codepoint (SyntaxError)
usinessmen #beautiful #smile\ud83d\ude0a #teambringit #shebr

如何解决这个错误?

JSON,与 JavaScript 一样,使用 UCS2 编码,Ruby 无法使用。

不要使用evil。一方面,Ruby 会将 \ud83d\ude0a 检测为无效代码点,这是应该的;另一方面,这是一个安全漏洞;最后,它会减慢您的代码速度。

使用JSON.parse,更安全,更快,知道如何处理UCS2:

require 'json'
json_str = '"usinessmen #beautiful #smile\ud83d\ude0a #teambringit #shebr"'
JSON.parse(json_str)
# => "usinessmen #beautiful #smile #teambringit #shebr"