Java加Swing实现简易爬虫

个人感觉Java挺好玩的,今天可以得到网页源代码了,开心一丢丢,学着学着感觉自己的知识太少了,真的要努力学习了

附上今天的成果。

package com.tz.util;
import java.net.MalformedURLException;
import java.net.URL;
import sun.net.www.URLConnection;
import java.io.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
/**
 * @author 老丑
 * @date 2018-1-21
 */
public class DownImgUtil extends JFrame implements ActionListener{
JPanel jp,jp2;
JLabel jl1,jl2;
JTextField jtf1,jtf2;
JButton jb;
JTextArea jta;
JScrollPane jsp;
public DownImgUtil(){
jl1=new JLabel("网址",JLabel.CENTER);
jl2=new JLabel("文件名",JLabel.CENTER);
jtf1=new JTextField(20);
jtf2=new JTextField(20);
jb=new JButton("确认");
jta=new JTextArea();
jsp=new JScrollPane(jta);
jb.addActionListener(this);
jb.setActionCommand("yes");
jp=new JPanel(new GridLayout(2,2));
jp2=new JPanel();
jp.add(jl1);
jp.add(jtf1);
jp.add(jl2);
jp.add(jtf2);
this.add(jp,BorderLayout.NORTH);
jp2.add(jb);
this.add(jp2,BorderLayout.SOUTH);
this.add(jsp,BorderLayout.CENTER);
this.setSize(400,500);
this.setVisible(true);
this.setLocation(200, 200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}
public static void main(String []args)
{
//htmlSource("http://www.fany-online.com/","utf-8");
DownImgUtil diu=new DownImgUtil();

}
public static String htmlSource(String link,String encoding,String filename,JTextArea jta)
{
StringBuffer sb=new StringBuffer();//构造缓冲区对象
InputStreamReader isr=null;
FileWriter fw=null;
BufferedWriter bw=null;
try {
//建立连接
URL url=new URL(link);
//打开网络连接
java.net.URLConnection uc = url.openConnection();
//伪装
uc.setRequestProperty("User-Agent", "Java");
//文件的输入
InputStream is=uc.getInputStream();
isr=new InputStreamReader(is,encoding);
//缓冲
BufferedReader br=new BufferedReader(isr);
//创建一个临时文件
String line=null;
String allcon="";
while((line=br.readLine())!=null)
{
sb.append(line+"\n");
allcon=allcon+line+"\r\n";
}
jta.setText(allcon);
fw=new FileWriter(filename);
bw=new BufferedWriter(fw);
bw.write(sb.toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
if(isr!=null)
{
isr.close();
}
if(bw!=null)
{
bw.close();
}
if(fw!=null)
{
fw.close();
}
} catch (Exception e2) {
// TODO: handle exception

e2.printStackTrace();

}
}
return sb.toString();
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==jb)
{
htmlSource(jtf1.getText(),"utf-8",jtf2.getText(),this.jta);
}
}

}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值