私の以前の質問は、モジュールを使用してluaでページ タイトルをフェッチすることについてでした。socket.http
問題はここにあります。以前は、YouTube ページで404 エラー ページが表示されました。MattJ のヘルプに基づいて、リクエスト用のカスタムHOST
ヘッダーを作成しました。これは私がしたことであり、その結果は次のとおりです。
コード
header = { host= "youtube.com" }
local result,b,c,h = http.request{ url = "http://www.youtube.com/watch?v=_eT40eV7OiI", headers = header }
print ( result, b, c, h )
for k,v in pairs(c) do print(k,v) end
結果
1 301 table: 0047D430 HTTP/1.1 301 Moved Permanently
x-content-type-options nosniff
content-length 0
expires Tue, 27 Apr 1971 19:44:06 EST
cache-control no-cache
connection close
location http://www.youtube.com/watch?v=_eT40eV7OiI
content-type text/html; charset=utf-8
date Sat, 28 Apr 2012 04:26:21 GMT
server wiseguy/0.6.11
このことから理解できた限りでは、エラーは基本的にX-Content-Type-Options
valuedによるものnosniff
です。そのドキュメントを読んで、定義された唯一の値「nosniff」が、Internet Explorer が宣言された content-type から離れた応答を MIME スニッフィングするのを防ぐことを知りました。
カスタムプロキシを使用して、YouTube(および前の質問で述べた他のサイト)のタイトルを本文から取得できるように助けてください。私が現在持っている完全なLUAファイルは次のとおりです。
local http = require "socket.http"
http.PROXY="http://<proxy address here>:8080"
header = { host= "youtube.com" }
local result,b,c,h = http.request{ url = "http://www.youtube.com/watch?v=_eT40eV7OiI", headers = header }
print ( result, b, c, h )
for k,v in pairs(c) do print(k,v) end