J'ai aws-lambda
fonction écrite comme ci-dessous et il renvoie le contenu html. import urllib2 importation JSONRails Nokogiri html analyse
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
Et je parse cela dans Rails
resp = lambda.invoke(function_name: 'lambda_crawl', payload: s)
content = resp['payload'].read
content_get = Nokogiri::HTML(content)
Cependant, dans content_get
, il y a quelque chose de problème d'encodage incompréhensible. <li class='\"rank01\"'>
si l'impression content_get
il montre comme ceci si at_css
ou xpath
la méthode de Nokogiri
ne correspond pas. Je ne sais pas pourquoi ce genre de chose se produit. J'ai essayé de supprimer les barres obliques, mais les caractères Unicode existent dans le contenu \u306e\u8a9e
, donc cela ne peut pas être la solution. La vérification de l'encodage indique également qu'il est codé en 'utf-8'
Quelle est l'origine de ce problème?
A quoi ressemble 'content'? – EJ2015
le problème est comme je l'ai mentionné toutes les valeurs sont chevauchées avec '\ "rank01 \"' bizarre '\ \' choses –
Je pense que cela va aider si vous montrez 'content' pour que les gens comprennent pourquoi cela se produit. – EJ2015