web-dev-qa-db-ja.com

Wgetを使用してユーザーエージェントとWebページをダウンロードする方法

Wgetを使用してこのページをダウンロードしようとしています。ここにページリンクがあります:

http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&rt=nc&item=250972882769&si=a8iGAIchyvEbn7KveYFZ5QbEE7o%3D&print=all&category=31387

そしてここに私のcmdがあります:

wget -O ebay.html --user-agent = "Mozilla/5.0(Windows NT 5.2; rv:2.0.1)Gecko/20100101 Firefox/4.0.1" " http://cgi.ebay.com /ws/eBayISAPI.dll?ViewItem&rt=nc&item=250972882769&si=a8iGAIchyvEbn7KveYFZ5QbEE7o%3D&print=all&category=31387 "

ブラウザを使用してページにアクセスするために使用すると、正常に動作します。 Wgetを使用すると、元のページではなく別のページがダウンロードされます。問題はユーザーエージェントにあると思います。解決策は何ですか?

17
qmaruf

問題はユーザーエージェントではなく、Cookieの欠落です。解決策は

  1. Wget --save-cookies = ebay-cookiesを使用して通常の製品ページを取得します。
  2. 「印刷」リンクURLをそのHTMLファイルから取り出します。 (私はこれを手作業で行いました。明らかにそれを行うためのスクリプトを書く必要があります。)
  3. Wget --load-cookies = ebay-cookiesを使用して「印刷」URLを取得します

ランダムな製品ページで試してみました。動いた。

13
Kyle Jones