2017-09-18 3 views
1

나는 아래와 같이 쓰여진 aws-lambda 기능이 있고 html 내용을 돌려 보낸다. 수입 urllib2가 수입 JSON은레일 Nokogiri html 파싱

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 

그리고 content_get에 뭔가 이해할 수없는 인코딩에 문제가있다, 그러나 Rails

resp = lambda.invoke(function_name: 'lambda_crawl', payload: s) 
content = resp['payload'].read 
content_get = Nokogiri::HTML(content) 

이를 구문 분석합니다. <li class='\"rank01\"'>content_get 인 경우 at_css 또는 xpath 방법이 Nokogiri 인 경우 적합하지 않습니다.

왜 이런 종류의 일이 발생하는지 잘 모르겠습니다. 슬래시를 없애려고했지만 유니 코드 문자가 내용물에 존재합니다. \u306e\u8a9e 이렇게하면 해결할 수 없습니다. 또한 인코딩 검사는 'utf-8'로 인코딩되었음을 보여줍니다.

이 문제의 근원은 무엇입니까?

+0

'콘텐츠'는 어떻게 생겼습니까? – EJ2015

+0

문제는 모든 값이 '\ "rank01 \"'이상한 '\ \'것으로 겹쳐져 있다고 말한 것입니다. –

+0

사람들이 왜 이런 일이 발생하는지 파악하기 위해 '콘텐츠'를 표시하면 도움이 될 것 같아요. – EJ2015

답변

0

이것은 람다에서 node.js 처리기를 사용하여 해결되었으므로 html 요청에서 정확한 내용을 가져옵니다.