我得到 (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"
我正在尝试从 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"