【问题标题】:How to work with user-agent to download a webpage using Wget如何使用用户代理使用 Wget 下载网页
【发布时间】:2012-01-15 18:03:09
【问题描述】:

我正在尝试使用 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 时,它会下载另一个页面,而不是原始页面。我认为问题出在用户代理上。解决办法是什么?

【问题讨论】:

  • 尝试使用 Fiddler 并在浏览器中打开 URL 时查看 http 请求的结构。只需将结构模仿到您的 wget 命令中即可。
  • 你能举个简单的例子吗??

标签: wget


【解决方案1】:

问题不在于用户代理,而是缺少一个或多个 cookie。解决办法是

  1. 使用 wget --save-cookies=ebay-cookies 检索正常的产品页面,
  2. 从该 HTML 文件中找出“打印”链接 URL。 (我是手工做的,你显然应该写一个脚本来做。)
  3. 使用 wget --load-cookies=ebay-cookies 检索“打印”URL

我在一个随机的产品页面上尝试过;成功了。

【讨论】:

  • 你是如何发现 ebay-cookies 是启用的词,以防我与其他网站一起使用如何找出启用哪些 cookie
  • ebay-cookies 只是我选择存储 cookie 的文件的名称。使用您喜欢的任何名称。重要的部分是使用 --save-cookies 来保存站点 cookie 和 --load-cookies 来加载并将它们发送回网站。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-05
  • 1970-01-01
相关资源
最近更新 更多