度々申し訳ございません。。。
URLからog:imageをパースしたく、いろいろと模索しております。
過去2回質問をさせていただいたのですが、私の質問の方法が悪く回答を得れなかったので、独力で進めています。。。
サーバーサイドでの実装は以下のように力業でできるようになったのですが、ソースコードをいちいち見に行くのでものすごく重いです。
strURL = "" strURL = Rec("ShopURL") IF strURL <> "" Then 'ServerXMLHTTPでサーバー間で HTTP アクセスを行う準備をする***************************** Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP") objXML.setOption 2, 13056 objXML.open "POST", strURL, False objXML.send '対象のURLからWeb情報を取得する(文字列型) BaseText = objXML.responseText '************************************************************************************** 'そのURLのWebページがあるかどうかを確認する intRet = objXML.status '404が戻ってきたらそのサイトは実在しないので終了 IF intRet <> 404 Then SearchPoint = 1'1文字目から参照する 'og:imageの前の部分をちょん切る FirstCutPoint = InStr(SearchPoint, BaseText, "og:image") If FirstCutPoint <> 0 Then 'og:imageがあるかどうか '次に切り取る位置を探す(jpgもしくはpngを探す) 'OGPは基本的にこの2つの拡張子のどちらかなのでその2つに最適化する nJPG = InStr(FirstCutPoint, BaseText, ".jpg") nPNG = InStr(FirstCutPoint, BaseText, ".png") 'どちらか先に見つかったほうで切って、拡張子を付け直す 'さらにhttpより前の文字数と拡張子より前の文字数を取得する 'Mid関数でその間を抜き出し、改めて拡張子を付け直す If nJPG > nPNG And nPNG <> 0 Then ChoiceTag = nPNG MidURL = Mid(BaseText, FirstCutPoint, (ChoiceTag - FirstCutPoint)) MidURL = MidURL & ".png" SecondCutPoint = InStr(SearchPoint, MidURL, "http") nPNG = InStr(SecondCutPoint, MidURL, ".png") ChoiceTag = nPNG ResultURL = Mid(MidURL, SecondCutPoint, (ChoiceTag - SecondCutPoint)) ResultURL = ResultURL & ".png" Else ChoiceTag = nJPG MidURL = Mid(BaseText, FirstCutPoint, (ChoiceTag - FirstCutPoint)) MidURL = MidURL & ".jpg" SecondCutPoint = InStr(SearchPoint, MidURL, "http") nJPG = InStr(SecondCutPoint, MidURL, ".jpg") ChoiceTag = nJPG ResultURL = Mid(MidURL, SecondCutPoint, (ChoiceTag - SecondCutPoint)) ResultURL = ResultURL & ".jpg" End IF '↓ブランクで開かないとセキュリティに引っかかるから注意! ImageOUTPUT = "<a href ='" & Rec("ShopURL") & "' target='_blank'><img src='" & ResultURL & "'></a>" Else 'ここにはogタグがなかった場合の処理を記載する End If Else 'ここにはURLが存在しなかった場合の処理を記載する End IF Else 'ここにはURLがブランクだった場合の処理を記載する End IF Response.Write (ImageOUTPUT)
そのため、Ajaxを使い、非同期で画像を出すことで体感速度を上げることができればと思って進めています。
以下のように記載をしているのですが、「ハンドルされない例外が発生しました」というエラーが表示されてしまいます。
どう修正すればいいのか、どなたかご教示いただけませんでしょうか??
<script TYPE="text/javascript"> /*店舗URLから店舗画像を取得するためのURL*/ $(function(){ var urlcount = document.getElementById('URLCount').value; for (var i = 1; i <= urlcount; i++){ var ScrapingShopURL = document.getElementById('ScrapingShopURL_' + i).href; $.ajax({ type: "POST", url: "GetImageURL.asp", data: { ScrapingShopURL: ScrapingShopURL }, datatype: "json" }).done(function (data) { $('#ResultImage_' + i).attr('src', ResultURL); }).fail(function () { alert('error!!!'); }); } }); </script>
ScrapingShopURL = Request.Form("ScrapingShopURL") 'ServerXMLHTTPでサーバー間で HTTP アクセスを行う準備をする***************************** Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP") objXML.setOption 2, 13056 objXML.open "POST", ScrapingShopURL, False objXML.send '対象のURLからWeb情報を取得する(文字列型) BaseText = objXML.responseText '************************************************************************************** 'そのURLのWebページがあるかどうかを確認する intRet = objXML.status '404が戻ってきたらそのサイトは実在しないので終了 IF intRet <> 404 Then SearchPoint = 1'1文字目から参照する 'og:imageの前の部分をちょん切る FirstCutPoint = InStr(SearchPoint, BaseText, "og:image") 'og:imageがあるかどうか If FirstCutPoint <> 0 Then '次に切り取る位置を探す(jpgもしくはpngを探す) 'OGPは基本的にこの2つの拡張子のどちらかなのでその2つに最適化する nJPG = InStr(FirstCutPoint, BaseText, ".jpg") nPNG = InStr(FirstCutPoint, BaseText, ".png") 'どちらか先に見つかったほうで切って、拡張子を付け直す 'さらにhttpより前の文字数と拡張子より前の文字数を取得する 'Mid関数でその間を抜き出し、改めて拡張子を付け直す If nJPG > nPNG And nPNG <> 0 Then ChoiceTag = nPNG MidURL = Mid(BaseText, FirstCutPoint, (ChoiceTag - FirstCutPoint)) MidURL = MidURL & ".png" SecondCutPoint = InStr(SearchPoint, MidURL, "http") nPNG = InStr(SecondCutPoint, MidURL, ".png") ChoiceTag = nPNG ResultURL = Mid(MidURL, SecondCutPoint, (ChoiceTag - SecondCutPoint)) ResultURL = ResultURL & ".png" Else ChoiceTag = nJPG MidURL = Mid(BaseText, FirstCutPoint, (ChoiceTag - FirstCutPoint)) MidURL = MidURL & ".jpg" SecondCutPoint = InStr(SearchPoint, MidURL, "http") nJPG = InStr(SecondCutPoint, MidURL, ".jpg") ChoiceTag = nJPG ResultURL = Mid(MidURL, SecondCutPoint, (ChoiceTag - SecondCutPoint)) ResultURL = ResultURL & ".jpg" End IF Else ResultURL = "" End If Else ResultURL = "" End IF BackData = "{""ResultURL"":" & ResultURL & "}" Response.Write(BackData)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/31 11:21