我有一個程序來拉取網頁的源代碼並將其保存到.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