我正在尝试用Java编写一个Web爬虫,到目前为止,它主要用于使用JavaScript或PHP动态获取内容的网站存在问题,例如,如果我尝试抓取tumblr博客而不是获取整个源代码与链接和一切我只获得CSS和标题信息,这是因为所有的帖子信息都是由JavaScript收集的。
用于从网页获取源代码的代码是......
public static String openURL( String url )
{
String source = null;
String temp = "";
BufferedInputStream bis;
try
{
URL my_url = new URL(url);
HttpURLConnection urlConnection = (HttpURLConnection) my_url.openConnection();
urlConnection.setRequestProperty("User-Agent", "Mozilla/5.0");
InputStream is = urlConnection.getInputStream();
bis = new BufferedInputStream(is);
byte[] buffer = new byte[1024];
int bytesread = 0;
source = "";
bytesread = bis.read(buffer);
while( bytesread != -1 )
{
source += new String(buffer, 0, bytesread);
bytesread = bis.read(buffer);
}
}
catch (Exception ex ){}
System.out.println(source);
return source;
}
有没有人如何改变这一点,以便获得动态内容,任何帮助将不胜感激
干杯丹尼尔
编辑:对不起家伙,虽然你的答案很有帮助,但这个项目更具教育性,所以我试图找到一种方法来完成第三方API的使用
答案 0 :(得分:2)
网页抓取工具通常会看到没有处理过javascript的网站。 Web开发人员知道这一点,因此可以在没有JS的情况下成功读取“好”的网站
如果你真的真的想要真正处理JS,(如果你没有,你的生活会变得容易多了),你可以使用这个工具:http://phantomjs.org/
我实际上并没有使用它,但它允许你在不使用浏览器的情况下处理JS ..
答案 1 :(得分:0)