我在亚马逊有一个联盟帐户,并且一直在从亚马逊网站收集信息,以便向他们发送买家。今天,我测试了我的网站,发现所有对亚马逊的请求都失败了。以下是证据:
假设:亚马逊已对其进行了编程 网站拒绝自动化 查询。
有什么方法可以欺骗 该系统并说服亚马逊发送 页面?
感谢和赞赏任何可以解决问题的人!
注意:在研究问题时,我看到了一个向HttpWebRequest添加UserAgent参数的建议。我尝试使用IE8的UserAgent代码,但它没有任何区别。 (在http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.useragent.aspx找到UserAgent代码)
答案 0 :(得分:3)
经过一些进一步的测试后发现,这种情况正在发生,因为亚马逊需要专门设置HttpWebRequest
的Accept参数。
只需将其设置为:
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
答案 1 :(得分:1)
在拨打电话之前,请尝试为HTTPWebRequest设置用户代理
答案 2 :(得分:0)
我在两天前开始遇到完全相同的问题。
我多年来一直在使用HttpWebRequest而没有任何问题,并且添加Useragent参数没有任何区别。
目前我能想出的唯一解决方案是使用带有嵌入式webbrowser的Windows窗体,其代码如下: -
Sub GetHTML
WebBrowser1.Navigate("http://www.amazon.co.uk")
Application.DoEvents()
End Sub
Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
Dim oDoc1
Dim StrHTML As String
oDoc1 = WebBrowser1.Document
StrHTML = oDoc1.body.outerhtml
End Sub