【发布时间】:2012-12-20 09:21:30
【问题描述】:
我正在尝试用 Java 编写一个网络爬虫,到目前为止,它大部分都可以工作,尽管我在使用 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 的方法
【问题讨论】:
-
这就是为什么通过 javascript 提供大多数内容对 SEO、可访问性等不利的原因。
标签: java web-crawler