我一直致力于获取www.bing.com内容的程序并将其保存到文件中,但是我尝试使用套接字的两种方式中,另一种使用HtmlUnit的方法都没有显示内容100打开文件时%正确。我知道还有其他选择,但我正在寻找能够保证正确获取www.bing.com/内容的选项。因此,如果有人能指出我实现这一目标的方法,我将不胜感激。
答案 0 :(得分:4)
您看到的差异可能是由于Web服务器根据用户代理字符串和其他请求标头向不同的浏览器提供不同的内容。
尝试将套接字和HtmlUnit策略中的User-Agent
标头设置为您要比较的标头,并查看结果是否符合预期。此外,您可能必须完全按照目标浏览器发送的请求标头进行复制。
答案 1 :(得分:0)
返回的内容有什么“不正确”?请记住,Bing可能会通过JavaScript生成一些内容;您的客户需要提出额外的请求来检索JavaScript文件,运行JavaScript等。
答案 2 :(得分:0)
您可以使用URL.openConnection()
创建URLConnection
并致电URLConnection.getInputStream()
。您可以读取InputStream内容并将其写入文件。
如果您需要覆盖User-Agent,因为服务器正在使用它来提供不同的内容,您可以先将http.agent
系统属性设置为空字符串。
/* Somewhere in your code before you make requests */
System.setProperty("http.agent", "");
或在java命令行上使用-Dhttp.agent=
然后在获取InputStream之前将User-Agent设置为连接上有用的东西。
URLConnection conn = ... //Create your URL connection as described above.
String userAgent = ... //Some user-agent string here.
conn.setRequestProperty("User-Agent", userAgent);