需要帮助的是网络爬虫问题。

3

我正在用Java编写一个非常基本的网络爬虫。我面临一个问题,就是加载同一URL的内容与浏览器中的不同。例如,请尝试下面的URL。

http://www.google.co.in/search?sourceid=chrome&ie=UTF-8&q=web+spider#sclient=psy&hl=en&source=hp&q=web+spider&aq=f&aqi=&aql=&oq=web+spider&pbx=1&fp=d8e8e41d6d2bda33&biw=1366&bih=643

如果您在浏览器中加载此URL,并通过JAVA URL类,内容将不同。这可能是由于以下原因:
- Javascript可能正在发送XMLHTTP请求并将结果连接起来以呈现最终的HTML。 - URL重定向最终可能呈现HTML。 - 其他我不知道的原因。
那么,在我的Java程序中是否有一种模拟浏览器的方法?是否有任何第三方库,可以加载与浏览器类似的页面,并最终返回内容?任何帮助都将不胜感激。

1
你尝试过在Java中包含USER_AGENT以匹配你的网络浏览器吗? - Bala R
是的,我已经包含了与IE8相同的user_agent,但问题仍然存在。这是因为浏览器执行JavaScript可能会发送XMLHTTPRequest并将结果连接起来形成最终内容。所以有没有一种方法可以模拟浏览器并获得最终内容。 - hnm
1个回答

1

尝试使用htmlunit,它可以模拟浏览器行为并处理JavaScript。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接