我的 aws-lambda
函数如下写,它返回HTML内容。 导入urllib2 导入JSON
def lambda_handler(event, context):
# TODO implement
req_url = event['url']
header = {"User-Agent" : 'Mozilla/5.0'}
response = ""
try:
request = urllib2.Request(req_url, headers=header)
response = urllib2.urlopen(request).read()
except:
response = "404 called"
return response
我在 Rails
resp = lambda.invoke(function_name: 'lambda_crawl', payload: s )
content = resp['payload'].read
content_get = Nokogiri::HTML(content)
但是,在content_get
中,有一些难以理解的编码问题。<li class='"rank01"'>
如果打印content_get
,则显示这样的at_css
或xpath
的Nokogiri
方法不合适。
我不确定为什么会发生这种事情。我试图剥离斜线,但是unicode字符中存在于内容u306eu8a9e
中,因此这不能是解决方案。还编码检查还显示它被编码为" UTF-8"
这个问题的起源是什么?
通过使用lambda中的node.js
处理程序来解决此问题,从而从HTML请求中获取了确切的内容。