1
私はaws-lambda
関数を以下のように書いてあり、htmlコンテンツを返します。 輸入urllib2の 輸入JSONRails Nokogiri html parsing
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
に適合しません。
なぜこの種のことが起こるのかわかりません。私はスラッシュを取り除こうとしましたが、コンテンツにはユニコード文字が存在します\u306e\u8a9e
これは解決策ではありません。また、エンコードチェックでも 'utf-8'としてエンコードされていることが示されます
この問題の原因は何ですか?
「コンテンツ」はどのように見えますか? – EJ2015
問題は私がすべての値が '\ "rank01 \"'奇妙な\ \ '物と重なっていると言いました。 –
なぜこれが起こるのかを理解するために 'content'を表示すると助けになると思います。 – EJ2015