java从网页抓取数据(:java实现这个多线程的主要代码,用c#应该也是一样的 )

优采云 发布时间: 2022-01-25 21:29

  java从网页抓取数据(:java实现这个多线程的主要代码,用c#应该也是一样的

)

  任务详情:

  有一个信息发布网站,会根据条件查询数据,分页展示,每页15条,每条信息是一个url链接。单击该链接将打开另一个页面,显示该项目的详细信息。

  我们需要做的就是抓取每件作品的详细信息,并将其保存到数据库中。

  一开始我制作了所有我抓取并保存到数据库中的程序。

  运行完发现速度很慢,因为数据量比较大,大概有30万条详细信息需要抓取。

  我只是觉得最好用多线程来实现这个,开15个线程,一次抓取一页的所有详细信息,不是很快吗?

  后来加了多线程后,一次开了16个线程,比原来快多了,呵呵~!

  因为这个项目是用java实现的,下面是java实现这个多线程的主要代码,在c#中应该是一样的!有兴趣的可以翻译成c#,厚厚的~

<p>import java.util.ArrayList;

public class Catcher

{

private static ArrayList threads= new ArrayList();//存储未处理URL

public static boolean isFinished=false;//是否已经把所有的链接存到threads了

public synchronized String getUrl()

{

if(threads.size()>0)

{

String tmp = String.valueOf(threads.get(0));

threads.remove(0);

return tmp;

}else

return null;

}

public void process(){

//处理预处理

//下面开10个线程等待处理

new Thread(new Processer(this)).start();

new Thread(new Processer(this)).start();

new Thread(new Processer(this)).start();

new Thread(new Processer(this)).start();

new Thread(new Processer(this)).start();

new Thread(new Processer(this)).start();

new Thread(new Processer(this)).start();

new Thread(new Processer(this)).start();

new Thread(new Processer(this)).start();

new Thread(new Processer(this)).start();

//进入翻页的处理

for(int j=0;j

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线