
下記のようなPGMを書いたのですが、たとえば、yahooのニュースなどのURLを入れた場合は、
テキストをちゃんと取ってきます。ですが、amazonの商品などを指定した場合はエラーが出ます。
エラーの内容は、プロシージャの呼び出し、または引数不正です。エラーが出ているのは、
objTxtfil.Write strBdytxt & vbcrlf の41行目です。
どなたかわかりませんでしょうか?
PGMはこちら↓
Set objInterE = WScript.CreateObject("InternetExplorer.Application")
Set objFsystm = WScript.CreateObject("Scripting.FileSystemObject")
Set objShells = WScript.CreateObject("WScript.Shell")
arrWebUrl = Array( _
"https://www.amazon.co.jp/gp/product/B00IB84W6G/r …
)
objInterE.Width = 1024
objInterE.Height = 768
objInterE.Left = 0
objInterE.Top = 0
objInterE.Statusbar = True
objInterE.ToolBar = True
objInterE.Visible = True
'保存ファイル名を指定
Set objTxtfil = objFsystm.OpenTextFile(objShells.SpecialFolders("Desktop") & "\copytest.txt" ,2,True)
For intWebUrl = 0 to UBound(arrWebUrl)
'URLを開きます
objInterE.Navigate arrWebUrl(intWebUrl)
Do Until objInterE.Busy = False
WScript.sleep(300)
Loop
'内容テキストを取り出します
strBdytxt = objInterE.Document.Body.InnerText
msgbox strBdytxt
objTxtfil.Write strBdytxt & vbcrlf
Next
'終了処理します
objTxtfil.Close
Set objInterE = Nothing
Set objFsystm = Nothing
Set objShells = Nothing
MsgBox "取得が終了しました" , vbInformation , "VBScriptテスト"
No.1ベストアンサー
- 回答日時:
こんにちは。
ご質問のコードを何度か書き換えながら試してみました、早い話、.Body.InnerText で、ゴミを拾ってくるだけでした。
>エラーの内容は、プロシージャの呼び出し、または引数不正です。
このエラーは、バッファの容量を越えてしまっているわけです。
サーバーによって例外が返されました。(HRESULTからの例外:0x80010105(RPC_E_SERVERFAULT))
となるわけですが、VBSの範囲ですと、テキストバッファの容量が少ないので、あれこれしてみましたが、そのものを取り扱うことは無理だと分かりました。
こんなテクニックができればよいのですが、
i = InStr(1, strBdytxt, "Amazon ")
buf = Mid(strBdytxt, i, 20000)
InStrでも同じ現象が置きてしまいます。このまま、生のVBSでは無理なのではないかと思います。VBSで何か別のオブジェクトやラッパーなどを使えば別だと思います。どうやっても、そのままでは解決付きそうにはありません。
それと、余計なことですが、Amazon は、確か、スクレイピングを嫌っていましたよね。これ一つのページで、どういじろうが問題はないと思うのですが、Amazon側では、APIを使えというわけです。とはいえ、ちょっとAPIは敷居が高いわけです。私自身、Amazon APIには手を出したことがありません。
内容はくどくなりますから、書きませんが、下記に書かれています。
・利用許可およびサイトへのアクセス
http://www.amazon.co.jp/gp/help/customer/display …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Visual Basic(VBA) エクセルVBAで以下のようなコードを書いたらエラーになりました。何処が間違っているの教えて? 1 2023/02/10 18:30
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでfunctionを利用しようとし...
-
文字列内で括弧を使うには
-
String""から型'Double'への変...
-
お助けください!VBAのファイル...
-
UserForm1.Showでエラーになり...
-
マクロOn Error GoTo ErrLabel...
-
DBへのINSERT時に実行時エラー...
-
VBA 空白行の削除
-
On ErrorでエラーNoが0
-
【VB.NET】 パワポ操作を非表示で
-
HTMLソースが表示のページのも...
-
【VBA】ワークブックを開く時に...
-
インポート時のエラー「データ...
-
Filter関数を用いた結果、何も...
-
Excel vbaについての質問
-
INSERT INTOステートメント構文...
-
ACCESS DAO で不要なテーブルの...
-
条件式について
-
IIS7.0上でASP.netでAD情報取得...
-
ApplicationとWorksheetFunctio...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UserForm1.Showでエラーになり...
-
お助けください!VBAのファイル...
-
VBAでfunctionを利用しようとし...
-
String""から型'Double'への変...
-
【VBA】ワークブックを開く時に...
-
文字列内で括弧を使うには
-
マクロで"#N/A"のエラー行を削...
-
Excel vbaについての質問
-
VBA データ(特定値)のある最...
-
On ErrorでエラーNoが0
-
ApplicationとWorksheetFunctio...
-
【Access】Excelインポート時に...
-
インポート時のエラー「データ...
-
実行時エラー 438 の解決策をお...
-
オブジェクト型の変数にフォー...
-
.VBSだとADODBのプロバイダが見...
-
実行時エラー'-2147467259(8000...
-
【VB.NET】 パワポ操作を非表示で
-
フランスの生年月日(jj/mm/aaaa)
-
【VBAエラー】Nextに対するFor...
おすすめ情報