我有一个程序来拉取网页的源代码并将其保存到.txt文件。如果一次只做一个,它就可以工作,但是当我经历一个100页的循环时,突然间每个页面源都会在1/4到3/4之间切断(似乎是任意)。关于为什么或如何解决这个问题的任何想法?为什么我的程序只能获取网页源代码的一部分?
最初的想法,那个循环对于java来说太快了(我从php脚本运行这个java),但后来认为它在技术上不应该进入下一个项目,直到当前的条件完成。
这里是我使用的代码:
import java.io.*;
import java.net.URL;
public class selectout {
public static BufferedReader read(String url) throws Exception{
return new BufferedReader(
new InputStreamReader(
new URL(url).openStream()));}
public static void main (String[] args) throws Exception{
BufferedReader reader = read(args[0]);
String line = reader.readLine();
String thenum = args[1];
FileWriter fstream = new FileWriter(thenum+".txt");
BufferedWriter out = new BufferedWriter(fstream);
while (line != null) {
out.write(line);
out.newLine();
//System.out.println(line);
line = reader.readLine(); }}
}
的PHP是一个基本的mysql_query
while(fetch_assoc)
抓斗从数据库的URL,然后运行system("java -jar crawl.jar $url $filename");
然后,fopen
和fread
新文件,最后将源码保存到数据库(在escaping_strings
等之后)。
哇,不敢相信我错过了。谢谢! – Calvin